Comments (9)
Hi Arun,
I last checked up on KNI several months ago when I was testing dpdk-1.8.0. At that time, KNI did not look like a good fit for mTCP as the packet context (sk_buff) is created inside the kernel. One of our goals in mTCP is to make packets completely bypass the kernel and allow more CPU resources to be spent on the user space application. I have not gone through the KNI design in recent versions but I was not expecting any massive change in the architecture. Why do you think it is a good idea to add KNI support?
from mtcp.
I definitely agree with you. The performance and the user space packet handling are the things we need using mTCP. But how about handling any unsupported packet types (UDP).
I am in the process of integrating NFS Ganesha (user space NFS application) server with mTCP support. But NFS server supports UDP traffic as well, so I need to support UDP streams as well. I decided Kernel networking stack to handle the UDP packets in order to avoid developing UDP parser in user space.
Also whether mTCP handles RPC requests for mount commands? Up to my knowledge I feel like, RPC calls also needs to be sent to Kernel for processing.
Note: currently I am trying to do prototype of KNI with epserver example application.
As per the KNI example application (I checked it in dpdk-2.0.0), KNI application receives the input packets from eth port and sends it to KNI queue (via rte_kni_tx_burst) and then it will be sent to networking stack via netif_rx(() call.
While doing tx, the packets will be received by KNI queues (rte_kni_rx_burst) and the same will be sent out via eth ports (rte_eth_tx_burst)
Let me know your views/suggestions on this.
from mtcp.
I will probably have to (i) discuss the design in more detail with you, and (ii) look at KNI API + design in further detail. :). UDP is not supported in the mTCP stack. But I am not sure what will be the best design to integrate NFS Ganesha with mTCP. Let's discuss this further in email.. Shall we?
from mtcp.
Hi everybody.
Has there been any progress in the plan to support KNI?
I want to create a emulation environment based on Mininet with a number of HTTP servers running on Mininet hosts inside a single Linux kernel. There are be no physical interfaces involved. While I would like to implement these servers based on mTCP, I am afraid there is currently no existing possibility to connect mTCP apps to virtual Mininet network interfaces in kernel space. I assume that the usage of KNI would make this possible?
Any other ideas how to achieve this are welcome, too!
from mtcp.
Hi quadrat,
I integrated the KNI interface support with mTCP application (specifically in dpdk_module.c file) and KNI is working as expected.
But after this integration, there are 2 interfaces dpdk0 (mtcp) and vEth0_0 (KNI interface) are available for the same NIC interface. I am currently checking on this.
from mtcp.
Hi Asim Jamshed,
I have successfully integrated KNI with mtcp application. So using KNI I am able to send only needed packets to kernel networking stack.
After receiving packets via "rte_eth_rx_burst()" DPDK call, I can parse the packet and decide whether to send it to Kernel stack or let the mtcp to process.
Most part of the integration is done in dpdk_module.c and io_module.c files.
Note that I had to disable the dpdk0 interface and has to bring up KNI interface (say vEth0) to enable the above operation (after the application intialization is done).
from mtcp.
Hi Arun,
I am happy to know that you have made KNI support operational with your setup. Would you mind sharing the code? We get requests for this type of extension from others as well. It will be great if your patch can be integrated in the main mTCP stack.
from mtcp.
Hi Asim, I have sent you a mail on this. we will discuss in mail further.
from mtcp.
Hi Arun:
Can you share your code(KNI support in mTCP) to me? Thanks for you in advance!
from mtcp.
Related Issues (20)
- Socket reader and writer in different threads
- Please remove dpdk-iface-kmod HOT 1
- Simple ping-pong mTCP app - slow ping (0.016 sec on a direct 10G connection) - mTCP not production-ready
- CentOS Linux release 7.8.2003 (Core) error: unknown field βndo_change_mtuβ specified in initializer
- Dell R220 Centos 7.8 mTCP DPDK 18.05 ERROR: This system does not support "AES".
- [ MPCreate: 173] Can't allocate memory for mempool! HOT 5
- Is mtcp over DPDK compatible with Linux Kernel 5.9? I got some errors at dpdk-iface.h HOT 1
- error running "epwget" example app, got error "No Ethernet port!"
- Run both the client and server on the same ubuntu system, is it possible?
- mTCP for Mellanox Bluefield SmartNIC HOT 3
- How to send requests to epserver
- DHCP lease time bug
- mtcp make issue HOT 2
- Macronix MX98715 packet driver returns always MAC address 00:00:00:00:00:00 ?
- A bug by static variables in RunMainLoop()
- mTCP make issue HOT 1
- Make issue with mtcp
- Lots of disconnect fail / errors HOT 1
- No route to x.x.x.x when running `perf` example HOT 1
- Strange DHCP issue with PowerLine Adapters?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mtcp.