Bug 1339178 - RFE: add Geneve support
Summary: RFE: add Geneve support
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: iproute
Version: 7.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Phil Sutter
QA Contact: Jaroslav Aster
URL:
Whiteboard:
Depends On: 1283886
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-05-24 10:38 UTC by Thadeu Lima de Souza Cascardo
Modified: 2018-05-04 15:36 UTC (History)
6 users (show)

Fixed In Version: iproute-3.10.0-73.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1371170 (view as bug list)
Environment:
Last Closed: 2016-11-03 23:39:11 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2016:2162 0 normal SHIPPED_LIVE iproute bug fix and enhancement update 2016-11-03 13:14:33 UTC

Description Thadeu Lima de Souza Cascardo 2016-05-24 10:38:27 UTC
Geneve netdev support is about to be added in RHEL7.3 kernel, so it should be supported by iproute in order to be able to create those tunnels. That's specially important for openvswitch tests with such tunnels.

Comment 3 Phil Sutter 2016-06-21 21:11:44 UTC
At least the following upstream commits need to be backported:

908755dc49df0 iproute2: GENEVE support
f4c05c2e99538 iplink_geneve: add ttl configuration at link creation
f4739b2ee780e iplink_geneve: add tos configuration at link creation
906ac5437ab8e geneve: add support for IPv6 link partners
9450c5ec63b0c geneve: add support for lwt tunnel creation and dst port selection
56f5daac98da0 ip: code cleanup
a418e451643e7 make format_host non-reentrant by default
325d02b44ce31 geneve: Add support for configuring UDP checksums.
29bb2373a8777 geneve: add support to set flow label
2642b6b03e546 geneve: fix IPv6 remote address reporting

Comment 5 Jaroslav Aster 2016-08-10 12:27:25 UTC
Hi Phil,

man-page ip-link is incomplete for geneve protocol and it needs to be updated. There are less options in ip-link man-page for geneve protocol than command ip link geneve help shows. Missing options, which are not in ip-link man-page, are

dstport
[no]external
[no]udpcsum
[no]udp6zerocsumtx
[no]udp6zerocsumrx

Documentation between ip link help and man page should be consistent. Switching it to assigned state.

Functionality seems to be ok.

Comment 7 Jaroslav Aster 2016-08-10 14:45:53 UTC
If flowlabel for ipv6 is set, iproute does not show it.

# ip link add test type geneve id 10 remote _IPv6_ADDRESS_ flowlabel 10
# ip -d link show test
54: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether e6:71:0a:04:ba:5b brd ff:ff:ff:ff:ff:ff promiscuity 0 
    geneve id 10 remote _IPV6_ADDRESS_ dstport 6081 noudpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64

Comment 8 Phil Sutter 2016-08-11 23:22:51 UTC
Hi Jaroslav,

(In reply to Jaroslav Aster from comment #5)
> Hi Phil,
> 
> man-page ip-link is incomplete for geneve protocol and it needs to be
> updated. There are less options in ip-link man-page for geneve protocol than
> command ip link geneve help shows. Missing options, which are not in ip-link
> man-page, are
> 
> dstport
> [no]external
> [no]udpcsum
> [no]udp6zerocsumtx
> [no]udp6zerocsumrx
> 
> Documentation between ip link help and man page should be consistent.
> Switching it to assigned state.
> 
> Functionality seems to be ok.

I've sent a patch adding the missing documentation bits upstream.


(In reply to Jaroslav Aster from comment #7)
> If flowlabel for ipv6 is set, iproute does not show it.
> 
> # ip link add test type geneve id 10 remote _IPv6_ADDRESS_ flowlabel 10
> # ip -d link show test
> 54: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
> qlen 1000
>     link/ether e6:71:0a:04:ba:5b brd ff:ff:ff:ff:ff:ff promiscuity 0 
>     geneve id 10 remote _IPV6_ADDRESS_ dstport 6081 noudpcsum
> noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64

Hmm. I can't reproduce this:

# ip link add test type geneve id 10 remote feed:babe::1 flowlabel 10
# ip -d link show test
3: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 7a:9a:20:70:1b:e5 brd ff:ff:ff:ff:ff:ff promiscuity 0 
    geneve id 10 remote feed:babe::1 flowlabel 0xa dstport 6081 udpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64 

What kernel version are you testing against? You need at least kernel-3.10.0-433.el7 to have support for flowlabel in there.

Thanks, Phil

Comment 9 Jaroslav Aster 2016-08-15 11:41:56 UTC
Hi Phil,

ok, I can confirm it on new kernel. Thanks. So only doc missing.

# uname -r
3.10.0-489.el7.s390x

# ip link add test type geneve id 10 remote feed:babe::1 flowlabel 10

# ip -d link show test
15: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 26:f0:e0:a9:77:6d brd ff:ff:ff:ff:ff:ff promiscuity 0 
    geneve id 10 remote feed:babe::1 flowlabel 0xa dstport 6081 udpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64

Comment 10 Jaroslav Aster 2016-08-23 13:19:08 UTC
Hi Phil,

everything seems to be good, except aarch64.

# uname -r
4.5.0-3.el7.aarch64

# ip link add test type geneve id 10 remote feed:babe::1 flowlabel 10

# ip -d link show test
119: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 4e:f2:18:d4:a9:d2 brd ff:ff:ff:ff:ff:ff promiscuity 0 
    geneve id 10 remote feed:babe::1 dstport 6081 noudpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64

Could you confirm to me, that aarch64's kernel does not support it? Thanks.

Comment 11 Phil Sutter 2016-08-26 12:38:29 UTC
Hi Jaroslav,

(In reply to Jaroslav Aster from comment #10)
> Hi Phil,
> 
> everything seems to be good, except aarch64.
> 
> # uname -r
> 4.5.0-3.el7.aarch64
> 
> # ip link add test type geneve id 10 remote feed:babe::1 flowlabel 10
> 
> # ip -d link show test
> 119: test: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
> qlen 1000
>     link/ether 4e:f2:18:d4:a9:d2 brd ff:ff:ff:ff:ff:ff promiscuity 0 
>     geneve id 10 remote feed:babe::1 dstport 6081 noudpcsum noudp6zerocsumtx
> noudp6zerocsumrx addrgenmode eui64
> 
> Could you confirm to me, that aarch64's kernel does not support it? Thanks.

ARM64 kernel development is still quite unclear in our team, but looking at the most recent branches of git://git.app.eng.bos.redhat.com/rhelsa7.git, it seems that GENEVE is indeed not enabled there. Please feel free to file a ticket if that blocks you from testing. I guess at some point ARM64 kernel configs have to be aligned with the other supported architectures anyway, but as said this is all pretty unclear at this point.

Thanks, Phil

Comment 14 errata-xmlrpc 2016-11-03 23:39:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2162.html


Note You need to log in before you can comment on or make changes to this bug.