Message ID | 20171109173107.26256-1-fbl@redhat.com |
---|---|
Headers | show |
Series | Add minimum network namespace support. | expand |
On 11/9/2017 9:30 AM, Flavio Leitner wrote: > Today Open vSwitch doesn't know about network namespaces (netns), but > users are moving internal ports to other namespaces. Although packets > are still flowing, the daemon fails to find out basic port information, > like if it is UP or DOWN, for instance. > > This patchset rely on a new kernel vport API recently accepted to find > out the new network namespace ID of a bridge's port. This information > along with the port's name recorded in the database is used to match the > corresponding netlink messages. > > This patchset also leverages another kernel API that allows the daemon > to listen to all netlink messages from all netns which has an ID assigned > into it. This and the previous change allows the userspace to track ports > in other network namespaces. > > If any of the APIs aren't available, it falls back to the older APIs to > not break backwards compatibility. > > > Flavio Leitner (8): > netlink: provide network namespace id from a msg. > netdev-linux: initialize netns as invalid. > vport: retrieve the netnsid if available. > netdev: update device info only if netns matches. > netdev-linux: use netlink to update netdev. > netlink linux: enable listening to all nsids > nlmon: added netns support. > netdev-linux: fail ops not supporting remote netns. > > configure.ac | 3 +- > datapath/linux/compat/include/linux/openvswitch.h | 2 + > lib/automake.mk | 1 + > lib/daemon-unix.c | 3 +- > lib/daemon.man | 6 +- > lib/daemon.xml | 8 +- > lib/dpif-netlink.c | 12 +- > lib/dpif-netlink.h | 2 + > lib/netdev-linux.c | 314 ++++++++++++++++++++-- > lib/netlink-notifier.c | 2 +- > lib/netlink-protocol.h | 6 + > lib/netlink-socket.c | 80 +++++- > lib/netlink-socket.h | 6 +- > lib/netns.h | 119 ++++++++ > tests/ofproto-macros.at | 1 + > tests/ovn-controller-vtep.at | 1 + > utilities/nlmon.c | 9 +- > 17 files changed, 531 insertions(+), 44 deletions(-) > create mode 100644 lib/netns.h > Besides one little nit in patch 3 it all looks good. I'll let someone who knows the namespace code better than I give it an ack but... Reviewed-by: Greg Rose <gvrose8192@gmail.com> Tested-by: Greg Rose <gvrose8192@gmail.com>
On Tue, 14 Nov 2017 14:54:20 -0800 Gregory Rose <gvrose8192@gmail.com> wrote: > On 11/9/2017 9:30 AM, Flavio Leitner wrote: > > Today Open vSwitch doesn't know about network namespaces (netns), but > > users are moving internal ports to other namespaces. Although packets > > are still flowing, the daemon fails to find out basic port information, > > like if it is UP or DOWN, for instance. > > > > This patchset rely on a new kernel vport API recently accepted to find > > out the new network namespace ID of a bridge's port. This information > > along with the port's name recorded in the database is used to match the > > corresponding netlink messages. > > > > This patchset also leverages another kernel API that allows the daemon > > to listen to all netlink messages from all netns which has an ID assigned > > into it. This and the previous change allows the userspace to track ports > > in other network namespaces. > > > > If any of the APIs aren't available, it falls back to the older APIs to > > not break backwards compatibility. > > > > > > Flavio Leitner (8): > > netlink: provide network namespace id from a msg. > > netdev-linux: initialize netns as invalid. > > vport: retrieve the netnsid if available. > > netdev: update device info only if netns matches. > > netdev-linux: use netlink to update netdev. > > netlink linux: enable listening to all nsids > > nlmon: added netns support. > > netdev-linux: fail ops not supporting remote netns. > > > > configure.ac | 3 +- > > datapath/linux/compat/include/linux/openvswitch.h | 2 + > > lib/automake.mk | 1 + > > lib/daemon-unix.c | 3 +- > > lib/daemon.man | 6 +- > > lib/daemon.xml | 8 +- > > lib/dpif-netlink.c | 12 +- > > lib/dpif-netlink.h | 2 + > > lib/netdev-linux.c | 314 ++++++++++++++++++++-- > > lib/netlink-notifier.c | 2 +- > > lib/netlink-protocol.h | 6 + > > lib/netlink-socket.c | 80 +++++- > > lib/netlink-socket.h | 6 +- > > lib/netns.h | 119 ++++++++ > > tests/ofproto-macros.at | 1 + > > tests/ovn-controller-vtep.at | 1 + > > utilities/nlmon.c | 9 +- > > 17 files changed, 531 insertions(+), 44 deletions(-) > > create mode 100644 lib/netns.h > > > > Besides one little nit in patch 3 it all looks good. I'll let someone > who knows the namespace code > better than I give it an ack but... > > Reviewed-by: Greg Rose <gvrose8192@gmail.com> > Tested-by: Greg Rose <gvrose8192@gmail.com> Thanks for the review and tests! Jiri is busy and he works inside of the kernel so maybe someone else can review?