How can I use DPDK with GridFTP? - ftp

I am new to Data Plane Development Kit (DPDK). I have the following questions.
How to use DPDK with GridFTP? Please provide me an example.
How to use DPDK to transfer data between two host computer nodes? Please provide me an example.
[EDIT-1] from the comments
DPDK version: 21.05.0 2
NIC: SmartNIC (Bluefield as per the comment)
DPDK TCP stack: Do not know yet but you can provide some suggestion (as an example).
GRID FTP code link
Question: I want to allow GridFTP packets to be send over DPDK interface.

Related

Simple BACnet implementation for PIC Microcontroller

I am designing a Fire Alarm System. Main Panel will act as Master. Manual
Call Point Units will act as Slaves.Hence there will be
only one Master. I want to use RS485. I am not using TCP/IP Data link. My
few doubts/questions are as follows:
For such a small setup can I use BACnet as my communication Protocol?
If yes, I am wondering to use which data link i should be using, because
every subsystem seems to be Multi Master [e.g. MS/TP].
In case if it is decided to use the BACnet for my project. Which files
from sources I should use. Considering minimum services
required. Initially it should be a bare minimum for the sake of
understanding, later i can upgrade the system.
I have gone through the demo examples for PIC microcontrollers. But
unable to understand it .
Please help.
Yes, you can use BACnet for the communication Protocol. Over RS485 it would be BACnet MSTP.
BACnet MSTP is Multi-Master, but you can have slave devices that use MAC address above 127. It gets complex when adding slave devices, lots of gotchas.
I can't help you with the open-source BACnet stacks. The BACnet protocol is quite large, even to support the basics. Look into the BACnet profile for B-SS for the smallest subset of BACnet services.

How to use Python to communicate with NIC PCIe

I am testing a custom FPGA NIC and I need to send management information (such as header info for matching) and traffic data to it using a traffic generator from within the user space.
The driver built for the FPGA is a modified version of IXGBE with DMA support for management, and also supports DPDK for kernel bypass to achieve high throughput.
I am trying to understand how the various software (driver, userspace application, etc) should be stacked/connected to each-other so I can achieve the objective of reading and writing to PCIe on the NIC using set of scripts from user space?
I have also been looking at this project
https://github.com/CospanDesign/python-pci
which is useful however based on Xilinx XDMA.
Would appreciate any help, pointers on this.
Sorry, the question is too broad. For such a broad question there is a generic answer: have a look at Inter Process Communication:
https://en.wikipedia.org/wiki/Inter-process_communication
There are variety of methods, like Unix sockets, shared memory, netlink etc, to communicate between user space processes. As well as a variety of methods to communicate between user space and kernel space.
Just pick the best for you and try to do something. If it fails, come again on SO and ask ;)

SIM5320 Arduino GPRS shield with MQTT

The new arduino GPRS/GSM 3g shield says that it has MQTT support with AT commands. However, each command that I've tried from the official documentation has returned an error and every other person on the internet has reported the same thing.
I have been using the adafruit fona library to run it and everything that it offers works on my board. As it's very new though, it doesn't have any MQTT implementation.
I know that the SIM900 chip has libraries for MQTT, but they don't work with the SIM5320. Does anyone have any advice on where to start for getting this chip to run MQTT?
Thanks in advance
At the end it is done via TCP. So if you establish a TCP connection and send the MQTT "connect" and "publish" messages, you should be able to connect and publish.
Here you can find a library that worked for me: https://github.com/andyduino/MQTT-for-SIM900/tree/master/libraries/mqtt
Instead of using "AT+CIPSTART" on SIM900 you will need to use "AT+CIPOPEN" on SIM5320, I think.
There's a really nice arduino library that you can adapt to use with your module. Its specifically for SIM800. Your module may take slightly different AT commands, so all you would have to do is change the commands. Here's a link to the library ->
https://elementztechblog.wordpress.com/2016/07/18/arduino-mqtt-library-for-sim800-gsm-modem/
Be warned, it will take some time and effort to adapt this to your module. But I'm pretty sure its as simple as swapping out some AT commands. I hope this helps you.

Add protocol to gammu

By default gammu have support for most standard modem. I have a very particular modem with some special requirements and I would like to add a protocol to gammu.
Is there a guide for this somewhere or someone who can list the basic steps for me?
EDIT: #user1664784 recommended to look att Kannel, and actually any system able to handle incoming and outgoing SMS is acceptable as long as it is stable. But I need to know how to modify the system so that I can handle a specific protocol. It is AT-based but a slight dialect. So any suggestion of a system handling SMS from a device connected over serial port is interesting. I need to find a system where someone can give me information on where in the source code I can begin adding a new AT-based protocol.
If someone have done some sample code in this area it would also be greatly appreciated.
It really depends how much different it is from standard AT commands.
If the difference is minor (eg. needs custom initialization), it can be easily achieved by feature flags. This can be seein ATGEN_PostConnect which handles initialization for ZTE or Huawei devices.
If the differences are big, you will probably need to write own driver, which will fall back to AT in some cases. Something similar can be seen in the AT OBEX driver which switches Bluetooth connection between OBEX and IrMC modes.
I think we used to have documentation on adding support for new devices, but I'm unable to find it right now.

Protocol Buffers - RPC

I'm trying to have a messaging service(over TCPIP) between windows on PC(running C# app) and linux on an SoC board(running C++ app). I went through Google's protocol buffers and thought that I can serialize the structure (data struct) into a buffer and write this buffer over sockets(saw an example too).
My question, is there another way to do this? What does protocol buffer-RPC do? I went through their documentation but they don't specify on how to do it with TCPIP. Maybe someone has examples for this or detailed documentation?
Thank you,
Karthik.
My question, is there another way to do this?
There are many ways to do this. Google Protocol Buffers is library for cross-platform object serialization. You can share this serialized data in many different ways. My recommendation for you is using ZMQ (ZMQ GUIDE) which is perfectly suited for applications like yours.
I have a similar use case to you. I wrote Linux C++ ZMQ server on Raspberry Pi and Python ZMQ client dedicated for telemetry and remote management purposes. This library is efficient, lightweight, works perfectly with Google Protocol Buffers and has binding to all major programming languages. If you decide to use this library do not hesitate to ask me about working code example.
See if the Google Developers page on how the protocol buffers wire format is encoded helps with your question: https://developers.google.com/protocol-buffers/docs/encoding

Resources