[ovs-dev] [PATCH] Bareudp Tunnel Support

William Tu u9012063 at gmail.com
Mon Apr 27 04:27:01 UTC 2020


On Mon, Apr 27, 2020 at 09:02:16AM +0530, Martin Varghese wrote:
> On Sat, Apr 25, 2020 at 06:40:18AM -0700, William Tu wrote:
> > On Fri, Apr 24, 2020 at 02:54:00PM +0530, Martin Varghese wrote:
> > > On Fri, Apr 24, 2020 at 01:06:21AM -0700, Pravin Shelar wrote:
> > > > On Sun, Apr 19, 2020 at 8:11 PM Martin Varghese
> > > > <martinvarghesenokia at gmail.com> wrote:
> > > > >
> > > > > From: Martin Varghese <martin.varghese at nokia.com>
> > > > >
> > > > > UDP tunnel encapsulation module for tunnelling different protocols like
> > > > > MPLS, IP, NSH etc
> > > > >
> > > > > The Bareudp tunnel module provides a generic UDP L3 encapsulation
> > > > > tunnelling module for tunnelling different protocols like MPLS,IP,NSH etc.
> > > > > inside a UDP tunnel.
> > > > >
> > > > > Signed-off-by: Martin Varghese <martin.varghese at nokia.com>
> > > > > ---
> > > > >  Documentation/automake.mk                          |   1 +
> > > > >  Documentation/faq/bareudp.rst                      |  62 ++
> > > > >  Documentation/faq/index.rst                        |   1 +
> > > > >  Documentation/faq/releases.rst                     |   1 +
> > > > >  NEWS                                               |   3 +-
> > > > >  datapath/Modules.mk                                |   4 +-
> > > > >  datapath/linux/Modules.mk                          |   2 +
> > > > >  datapath/linux/compat/bareudp.c                    | 820 +++++++++++++++++++++
> > > > >  datapath/linux/compat/include/linux/if_link.h      |  11 +
> > > > >  datapath/linux/compat/include/linux/openvswitch.h  |  11 +
> > > > >  datapath/linux/compat/include/net/bareudp.h        |  59 ++
> > > > >  datapath/linux/compat/include/net/ip6_tunnel.h     |   9 +
> > > > >  datapath/linux/compat/include/net/ip_tunnels.h     |   7 +
> > > > >  datapath/linux/compat/ip6_tunnel.c                 |  60 ++
> > > > >  datapath/linux/compat/ip_tunnel.c                  |  47 ++
> > > > >  datapath/vport-bareudp.c                           | 202 +++++
> > > > >  datapath/vport.c                                   |  11 +-
> > > > >  lib/dpif-netlink-rtnl.c                            |  53 ++
> > > > >  lib/dpif-netlink.c                                 |  10 +
> > > > >  lib/netdev-vport.c                                 |  25 +-
> > > > >  lib/netdev.h                                       |   1 +
> > > > >  ofproto/ofproto-dpif-xlate.c                       |   1 +
> > > > >  rhel/openvswitch-kmod-fedora.spec.in               |   2 +-
> > > > >  ...sr_share_openvswitch_scripts_ovs-kmod-manage.sh |   2 +-
> > > > >  tests/automake.mk                                  |   2 +-
> > > > >  tests/system-layer3-tunnels.at                     |  47 ++
> > > > >  utilities/ovs-dev.py                               |   1 +
> > > > >  27 files changed, 1447 insertions(+), 8 deletions(-)
> > > > >  create mode 100644 Documentation/faq/bareudp.rst
> > > > >  create mode 100644 datapath/linux/compat/bareudp.c
> > > > >  create mode 100644 datapath/linux/compat/include/net/bareudp.h
> > > > >  create mode 100644 datapath/vport-bareudp.c
> > > > >
> > > > I do not see need to have vport-bareudp module. we can directly use
> > > > bareudp dev from upstream kernel or from ovs compat module. Current
> > > > vport modules are there due to legacy reasons. All new tunnel
> > > > implementation should follow new design in which all tunnel devices
> > > > are netdevices.
> > > >
> > > if flag ovs_tunnels_out_of_tree is true, the old genetlink interface is used corret? 
> > Then it uses the kernel module under ovs/datapath/* , not the upstream kernel.
> > In your case, it load the code from datapath/linux/compat/bareudp.c
> >
> 
> The new convention is to move the ovs_vport_ops_register to bareudp.c and hence there
> is no need of a seperate vport-bareudp module.But unlike devices from upstream
> the vport type of bareudp device in compact should be OVS_VPORT_TYPE_BAREDUP instead
> of OVS_VPORT_TYPE_NETDEVICE in upstream device
> 
> Is the above undertanding correct ? 
Yes.

> > > How the rtnetlink interface will be used in that use .I am missing something here.
> > > Is there any tunnel device which does the new  way with ovs-kernel tree installed ?  
> > 
> > Yes, take a look at ERSPAN tunnel.
> > 
> unlike vxlan, & geneve the ERSPAN device regiters itself with rtnl with same
> name as the upstream device "ip6erspan" . Will it not create a conflict ?

Yes, so only one module can be loaded.
Either the upstream kernel one or the OVS compat.

William



More information about the dev mailing list