It still failed. Does "encap ip" require any special kernel module?

vagrant@gbpsfc4:~/ovs-nsh-test$ export 
PATH=/home/vagrant/iproute2-4.9.0/ip:$PATH
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip link add dev at_vxlan1 type vxlan 
dstport 4790 external gpe
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip addr add dev at_vxlan1 10.1.1.1/24
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip link set dev at_vxlan1 mtu 1450 up
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip route add 10.1.1.2/32 encap ip id 0 
dst 172.31.1.100 dev at_vxlan1
RTNETLINK answers: Operation not supported
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip route add 10.1.1.2/32 encap ip id 1 
dst 172.31.1.100 dev at_vxlan1
RTNETLINK answers: Operation not supported
vagrant@gbpsfc4:~/ovs-nsh-test$ sudo -E ip route add 10.1.1.2/32 encap ip dst 
172.31.1.100 dev at_vxlan1
RTNETLINK answers: Operation not supported
vagrant@gbpsfc4:~/ovs-nsh-test$ lsmod
Module                  Size  Used by
vxlan                  53248  0
ip6_udp_tunnel         16384  1 vxlan
udp_tunnel             16384  1 vxlan
ip6_tunnel             32768  0
tunnel6                16384  1 ip6_tunnel
ipip                   16384  0
tunnel4                16384  1 ipip
ip_tunnel              24576  1 ipip
veth                   16384  0
nf_conntrack_ipv6      20480  0
nf_defrag_ipv6         36864  1 nf_conntrack_ipv6
xt_addrtype            16384  2
xt_conntrack           16384  1
ipt_MASQUERADE         16384  1
nf_nat_masquerade_ipv4    16384  1 ipt_MASQUERADE
iptable_nat            16384  1
dm_crypt               36864  0
nf_conntrack_ipv4      16384  3
nf_defrag_ipv4         16384  1 nf_conntrack_ipv4
nf_nat_ipv4            16384  1 iptable_nat
nf_nat                 28672  2 nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack          131072  7 
nf_conntrack_ipv6,nf_conntrack_ipv4,ipt_MASQUERADE,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat
bridge                143360  0
stp                    16384  1 bridge
llc                    16384  2 bridge,stp
dm_thin_pool           65536  1
dm_persistent_data     69632  1 dm_thin_pool
dm_bio_prison          20480  1 dm_thin_pool
dm_bufio               28672  1 dm_persistent_data
libcrc32c              16384  3 nf_conntrack,dm_persistent_data,nf_nat
nfsd                  299008  2
iptable_filter         16384  1
ip_tables              24576  2 iptable_filter,iptable_nat
x_tables               36864  5 
ip_tables,iptable_filter,ipt_MASQUERADE,xt_addrtype,xt_conntrack
auth_rpcgss            57344  1 nfsd
nfs_acl                16384  1 nfsd
nfs                   241664  0
lockd                  90112  2 nfsd,nfs
grace                  16384  2 nfsd,lockd
sunrpc                327680  6 auth_rpcgss,nfsd,nfs_acl,lockd,nfs
fscache                65536  1 nfs
psmouse               139264  0
e1000                 139264  0
ppdev                  20480  0
parport_pc             32768  0
i2c_piix4              24576  0
mac_hid                16384  0
sb_edac                24576  0
serio_raw              16384  0
lp                     20480  0
parport                49152  3 lp,parport_pc,ppdev
pata_acpi              16384  0
video                  40960  0
vagrant@gbpsfc4:~/ovs-nsh-test$
-----Original Message-----
From: Eric Garver [mailto:e...@erig.me] 
Sent: Thursday, February 1, 2018 5:10 AM
To: Yang, Yi Y <yi.y.y...@intel.com>
Cc: d...@openvswitch.org
Subject: Re: [ovs-dev] [PATCH v1 0/5] datapath: enable NSH support in kernel 
compat mode

On Wed, Jan 31, 2018 at 02:12:14PM +0000, Yang, Yi Y wrote:
> Hi, Eric
> 
> My kernel is 4.13.0-rc6, so I'm very sure it can support vxlan-gpe, I 
> can add vxlan-gpe port without any issue by command line, so I don't 
> know what happened.

Your output below indicates this is failing on this line:

25  NS_CHECK_EXEC([at_ns0], [ip route add 10.1.1.2/32 encap ip id 0 dst 
172.31.1.100 dev at_vxlan1])

It does not appear to be an OVS issue. Maybe encap id 0 is not accepted on 
older kernels. Try changing it to a non-zero value.

> 
> Greg, I checked unit tests in tests/system-traffic.at and 
> tests/system-layer3-tunnels.at for vxlan and vxlan-gpe, I think they are very 
> tricky, for NSH, they won't work, current test infrastructure can't handle 
> NSH unit test in kernel data path, so I don't think I can add it. I have 
> posted v2 patch series, I have sfc test environment in my machine and have 
> verified kernel data path, my test environment has two vagrant VMs, each one 
> VM starts two containers which play SF roles, end-to-end ping and http are 
> both ok.
> 
> -----Original Message-----
> From: Eric Garver [mailto:e...@erig.me]
> Sent: Tuesday, January 30, 2018 9:53 PM
> To: Yang, Yi Y <yi.y.y...@intel.com>
> Cc: Gregory Rose <gvrose8...@gmail.com>; d...@openvswitch.org
> Subject: Re: [ovs-dev] [PATCH v1 0/5] datapath: enable NSH support in 
> kernel compat mode
> 
> On Tue, Jan 30, 2018 at 11:33:55AM +0000, Yang, Yi Y wrote:
> > Hi, Greg
> > 
> > I installed linux 3.10.107 in Ubuntu 14.04 and fixed 
> > skb_gso_error_unwind issue, but for unit test, 
> > tests/system-layer3-tunnels.at is a good reference for it because we 
> > used vxlan-gpe for nsh, I ran unit test 90, but it always fails (I 
> > have installed and used net-next kernel and the latest iproute2)
> > 
> > Here is error log
> > 
> > ./system-layer3-tunnels.at:25: ip netns exec at_ns0 sh << 
> > NS_EXEC_HEREDOC ip route add 10.1.1.2/32 encap ip id 0 dst
> > 172.31.1.100 dev at_vxlan1 NS_EXEC_HEREDOC
> > --- /dev/null   2018-01-30 02:18:43.272647961 +0000
> > +++ 
> > /home/vagrant/ovs-nsh-test/tests/system-kmod-testsuite.dir/at-groups/90/stderr
> >       2018-01-30 09:45:15.415934534 +0000
> > @@ -0,0 +1 @@
> > +RTNETLINK answers: Operation not supported
> > ./system-layer3-tunnels.at:25: exit code was 2, expected 0
> > 
> > I think my system missed something so “ip route add 10.1.1.2/32 
> > encap ip id 0 dst 172.31.1.100 dev at_vxlan1 “ failed, Eric, what linux 
> > distribution do you know I can run “ping over VXLAN-GPE” successfully, I’ll 
> > use it as baseline to add NSH unit test for kernel data path.
> 
> When I added the tests it was on RHEL-7.4 with a net-next kernel. It should 
> skip the tests if the installed iproute2 does not have the options for GPE.
> 
> The error you're seeing likely means your kernel does not have GPE support. 
> VXLAN-GPE first appeared in kernel 4.7.
> 
>   e1e5314de08b ("vxlan: implement GPE")
> 
> As such, I think the VXLAN-GPE test case should pass on any distro with a 
> 4.7+ kernel.
> 
> > 
> > From: Gregory Rose [mailto:gvrose8...@gmail.com]
> > Sent: Tuesday, January 30, 2018 1:51 AM
> > To: Yang, Yi Y <yi.y.y...@intel.com>; d...@openvswitch.org
> > Cc: b...@ovn.org; jan.scheur...@ericsson.com
> > Subject: Re: [PATCH v1 0/5] datapath: enable NSH support in kernel 
> > compat mode
> > 
> > On 1/10/2018 11:53 PM, Yi Yang wrote:
> > 
> > 
> > This patch series is to backport NSH support patches in Linux 
> > net-next tree
> > 
> > to OVS in order that it can support NSH in kernel compat mode.
> > 
> > 
> > 
> > Yi Yang (5):
> > 
> >   datapath: ether: add NSH ethertype
> > 
> >   datapath: vxlan: factor out VXLAN-GPE next protocol
> > 
> >   datapath: net: add NSH header structures and helpers
> > 
> >   datapath: nsh: add GSO support
> > 
> >   datapath: enable NSH support
> > 
> > 
> > 
> >  NEWS                                              |   1 +
> > 
> >  datapath/Modules.mk                               |   4 +-
> > 
> >  datapath/actions.c                                | 116 ++++++++
> > 
> >  datapath/datapath.c                               |   4 +
> > 
> >  datapath/flow.c                                   |  51 ++++
> > 
> >  datapath/flow.h                                   |   7 +
> > 
> >  datapath/flow_netlink.c                           | 343 
> > +++++++++++++++++++++-
> > 
> >  datapath/flow_netlink.h                           |   5 +
> > 
> >  datapath/linux/Modules.mk                         |   2 +
> > 
> >  datapath/linux/compat/include/linux/if_ether.h    |   4 +
> > 
> >  datapath/linux/compat/include/linux/openvswitch.h |   6 +-
> > 
> >  datapath/linux/compat/include/net/nsh.h           | 313 
> > ++++++++++++++++++++
> > 
> >  datapath/linux/compat/include/net/tun_proto.h     |  49 ++++
> > 
> >  datapath/linux/compat/include/net/vxlan.h         |   6 -
> > 
> >  datapath/linux/compat/vxlan.c                     |  32 +-
> > 
> >  datapath/nsh.c                                    | 142 +++++++++
> > 
> >  16 files changed, 1048 insertions(+), 37 deletions(-)
> > 
> >  create mode 100644 datapath/linux/compat/include/net/nsh.h
> > 
> >  create mode 100644 datapath/linux/compat/include/net/tun_proto.h
> > 
> >  create mode 100644 datapath/nsh.c
> > 
> > 
> > 
> > Hi Yi,
> > 
> > My apologies for the delay in reviewing this series.
> > 
> > I've finished up my review and I think it mostly looks pretty good but I 
> > did find an issue compiling on a 3.10.107 kernel build:
> > CC [M]
> > /home/travis/build/gvrose8192/ovs-experimental/datapath/linux/vport-
> > ne
> > tdev.o
> > /home/travis/build/gvrose8192/ovs-experimental/datapath/linux/nsh.c:108:17: 
> > error: undefined identifier 'skb_gso_error_unwind'
> > CC [M]
> > /home/travis/build/gvrose8192/ovs-experimental/datapath/linux/nsh.o
> > /home/travis/build/gvrose8192/ovs-experimental/datapath/linux/nsh.c: In 
> > function ‘nsh_gso_segment’:
> > /home/travis/build/gvrose8192/ovs-experimental/datapath/linux/nsh.c:
> > 10
> > 8:3: error: implicit declaration of function ‘skb_gso_error_unwind’ 
> > [-Werror=implicit-function-declaration]
> > skb_gso_error_unwind(skb, htons(ETH_P_NSH), nsh_len, ^
> > cc1: some warnings being treated as errors
> > make[3]: ***
> > [/home/travis/build/gvrose8192/ovs-experimental/datapath/linux/nsh.o
> > ]
> > Error 1
> > make[3]: *** Waiting for unfinished jobs....
> > make[2]: ***
> > [_module_/home/travis/build/gvrose8192/ovs-experimental/datapath/lin
> > ux
> > ] Error 2
> > make[2]: Leaving directory 
> > `/home/travis/build/gvrose8192/ovs-experimental/linux-3.10.107'
> > make[1]: *** [default] Error 2
> > make[1]: Leaving directory 
> > `/home/travis/build/gvrose8192/ovs-experimental/datapath/linux'
> > make: *** [all-recursive] Error 1
> > 
> > So we'll need to fix that up and I also think the patches will need to be 
> > rebased to current master.  That second part is my fault... so sorry again 
> > about that.
> > 
> > One other thing, I ran this through our standard 'make check and make 
> > check-kmod' tests and everything was fine so the patches don't seem break 
> > anything.  I'm still concerned though that the test coverage probably 
> > didn't hit any parts of your code.  I'm wondering if there is some way I 
> > can test the code path and get some test coverage there.  Could you write 
> > up a self test for the tests/system-traffic.at kernel test?  Of if that's 
> > not practical is there some other way I could test this code?
> > 
> > Thanks,
> > 
> > - Greg
> > 
> > _______________________________________________
> > dev mailing list
> > d...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to