[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
Hi all, My application takes over one/multiple ethernet port(s) in a linux system and creates KNI interfaces corresponding to them. So if there was eth0 and eth1 in the non-dpdk mode, once I take over the ports using dpdk, I create eth0 and eth1 KNI interfaces. As far as the linux network managers are concerned, they dont really know about it (or care I guess) - for example the dhcp client tries getting a dhcp address over these KNI interfaces and succeeds. Now if my application crashes, I dont want the entire network management subsystem on linux and the hotplugs and this and that to get alarmed and routes to vanish from the route table etc.. etc.. The application will crash and come back up real quick, nothing needs to change in that meantime. Any way to achieve that ? I just want to keep the KNI around even if my app vanishes. Rgds, Gopa.
[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
Reading through the KNI module source, doesnt look like there is a way to do this. For my requirement, I will make some patch tomorrow to have a module option to just keep the KNI data structures around even if /dev/kni is closed, looks straightforward to do from the code Rgds, Gopa. On Wed, Jul 8, 2015 at 1:00 PM, Gopakumar Choorakkot Edakkunni wrote: > Hi all, > > My application takes over one/multiple ethernet port(s) in a linux > system and creates KNI interfaces corresponding to them. So if there > was eth0 and eth1 in the non-dpdk mode, once I take over the ports > using dpdk, I create eth0 and eth1 KNI interfaces. As far as the linux > network managers are concerned, they dont really know about it (or > care I guess) - for example the dhcp client tries getting a dhcp > address over these KNI interfaces and succeeds. > > Now if my application crashes, I dont want the entire network > management subsystem on linux and the hotplugs and this and that to > get alarmed and routes to vanish from the route table etc.. etc.. The > application will crash and come back up real quick, nothing needs to > change in that meantime. > > Any way to achieve that ? I just want to keep the KNI around even if > my app vanishes. > > Rgds, > Gopa.
[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
On 09/07/15 08:36, Gopakumar Choorakkot Edakkunni wrote: > Reading through the KNI module source, doesnt look like there is a way > to do this. For my requirement, I will make some patch tomorrow to > have a module option to just keep the KNI data structures around even > if /dev/kni is closed, looks straightforward to do from the code > > Rgds, > Gopa. > > On Wed, Jul 8, 2015 at 1:00 PM, Gopakumar Choorakkot Edakkunni > wrote: >> Hi all, >> >> My application takes over one/multiple ethernet port(s) in a linux >> system and creates KNI interfaces corresponding to them. So if there >> was eth0 and eth1 in the non-dpdk mode, once I take over the ports >> using dpdk, I create eth0 and eth1 KNI interfaces. As far as the linux >> network managers are concerned, they dont really know about it (or >> care I guess) - for example the dhcp client tries getting a dhcp >> address over these KNI interfaces and succeeds. >> >> Now if my application crashes, I dont want the entire network >> management subsystem on linux and the hotplugs and this and that to >> get alarmed and routes to vanish from the route table etc.. etc.. The >> application will crash and come back up real quick, nothing needs to >> change in that meantime. Maybe a stupid question; why not fixing your application so that it doesn't crash, instead of adding adhoc patches? marc >> >> Any way to achieve that ? I just want to keep the KNI around even if >> my app vanishes. >> >> Rgds, >> Gopa.
[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
Crash is just one example I called out, the other example is a hotfix update to the app which ends up gracefully restarting the app. Rgds, Gopa. On Thu, Jul 9, 2015 at 12:47 AM, Marc Sune wrote: > > > On 09/07/15 08:36, Gopakumar Choorakkot Edakkunni wrote: >> >> Reading through the KNI module source, doesnt look like there is a way >> to do this. For my requirement, I will make some patch tomorrow to >> have a module option to just keep the KNI data structures around even >> if /dev/kni is closed, looks straightforward to do from the code >> >> Rgds, >> Gopa. >> >> On Wed, Jul 8, 2015 at 1:00 PM, Gopakumar Choorakkot Edakkunni >> wrote: >>> >>> Hi all, >>> >>> My application takes over one/multiple ethernet port(s) in a linux >>> system and creates KNI interfaces corresponding to them. So if there >>> was eth0 and eth1 in the non-dpdk mode, once I take over the ports >>> using dpdk, I create eth0 and eth1 KNI interfaces. As far as the linux >>> network managers are concerned, they dont really know about it (or >>> care I guess) - for example the dhcp client tries getting a dhcp >>> address over these KNI interfaces and succeeds. >>> >>> Now if my application crashes, I dont want the entire network >>> management subsystem on linux and the hotplugs and this and that to >>> get alarmed and routes to vanish from the route table etc.. etc.. The >>> application will crash and come back up real quick, nothing needs to >>> change in that meantime. > > > Maybe a stupid question; why not fixing your application so that it doesn't > crash, instead of adding adhoc patches? > > marc > > >>> >>> Any way to achieve that ? I just want to keep the KNI around even if >>> my app vanishes. >>> >>> Rgds, >>> Gopa. > >
[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
On Wed, 8 Jul 2015 23:36:52 -0700 Gopakumar Choorakkot Edakkunni wrote: > Reading through the KNI module source, doesnt look like there is a way > to do this. For my requirement, I will make some patch tomorrow to > have a module option to just keep the KNI data structures around even > if /dev/kni is closed, looks straightforward to do from the code I don't think it is that simple given the shared ring in KNI
[dpdk-dev] How to prevent KNI interface from getting deleted on application termination?
You are right, I dint think of the rings. I guess if I keep the netdev intact and release the rings and stuff as it does on a /dev/kni close, that should be fine ? And when my app comes back up and opens dev/kni, the rings etc.. can be recreated, and when my app tries to create the netdevs, it reattaches it to the existing ones. The way I look at it, its similar to the tun/tap ioctl option TUNSETPERSIST. Rgds, Gopa. On Thu, Jul 9, 2015 at 9:46 AM, Stephen Hemminger wrote: > On Wed, 8 Jul 2015 23:36:52 -0700 > Gopakumar Choorakkot Edakkunni wrote: > >> Reading through the KNI module source, doesnt look like there is a way >> to do this. For my requirement, I will make some patch tomorrow to >> have a module option to just keep the KNI data structures around even >> if /dev/kni is closed, looks straightforward to do from the code > > > I don't think it is that simple given the shared ring in KNI