Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 1827090

Summary: ovn should discards any prefixes for which the preferred lifetime is greater than the valid lifetime
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Jianlin Shi <jishi>
Component: ovn2.13Assignee: lorenzo bianconi <lorenzo.bianconi>
Status: CLOSED ERRATA QA Contact: Jianlin Shi <jishi>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: FDP 20.DCC: ctrautma, jishi, ralongi
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn2.13-2.13.0-24.el7fdn Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-26 14:07:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jianlin Shi 2020-04-23 09:13:47 UTC
Description of problem:
ovn should discards any prefixes for which the preferred lifetime is greater than the valid lifetime

from https://tools.ietf.org/html/rfc3633#section-10:
A requesting router discards any prefixes for which the preferred
   lifetime is greater than the valid lifetime. 

but the code https://github.com/ovn-org/ovn/blob/master/controller/pinctrl.c#L835 doesn't do that

Version-Release number of selected component (if applicable):
ovn2.13.0-18

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 4 Jianlin Shi 2020-05-13 06:59:47 UTC
Verified on ovn2.13.0-30.el7:


systemctl start openvswitch
systemctl start ovn-northd                                              
ovn-nbctl set-connection ptcp:6641                           
ovn-sbctl set-connection ptcp:6642                           
ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:10.16.216.112:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=10.16.216.112
systemctl restart ovn-controller
ovn-nbctl ls-add ls1    
                              
ovn-nbctl lr-add lr1                 
ovn-nbctl lrp-add lr1 lr1-ls1 00:00:00:00:00:01 172.16.1.1/24
ovn-nbctl lsp-add ls1 ls1-lr1             
ovn-nbctl lsp-set-type ls1-lr1 router
ovn-nbctl lsp-set-options ls1-lr1 router-port=lr1-ls1                 
ovn-nbctl lsp-set-addresses ls1-lr1 router                    
                                                                      
ovn-nbctl lsp-add ls1 lnls1
ovn-nbctl lsp-set-options lnls1 network_name=provider
ovn-nbctl lsp-set-type lnls1 localnet                            
ovn-nbctl lsp-set-addresses lnls1 unknown    

ovn-nbctl set logical_router lr1 options:chassis=hv1

ovn-nbctl lrp-add lr1 lr1-ls2 00:00:00:00:00:02 172.16.1.2/24
ovn-nbctl lrp-add lr1 lr1-ls3 00:00:00:00:00:03 172.16.1.3/24
ovn-nbctl ls-add ls2
ovn-nbctl lsp-add ls2 ls2-lr1
ovn-nbctl lsp-set-type ls2-lr1 router
ovn-nbctl lsp-set-options ls2-lr1 router-port=lr1-ls2
ovn-nbctl lsp-set-addresses ls2-lr1 router

ovn-nbctl ls-add ls3
ovn-nbctl lsp-add ls3 ls3-lr1
ovn-nbctl lsp-set-type ls3-lr1 router
ovn-nbctl lsp-set-options ls3-lr1 router-port=lr1-ls3
ovn-nbctl lsp-set-addresses ls3-lr1 router

ovs-vsctl add-br br-test
ip link set br-test up
ovs-vsctl set open . external-ids:ovn-bridge-mappings=provider:br-test

ip netns add server0
ip link add veth0_s0 netns server0 type veth peer name veth0_s0_p
ip netns exec server0 ip link set veth0_s0 up
ip netns exec server0 ip addr add 2001:1db8:3333::2/64 dev veth0_s0
ovs-vsctl add-port br-test veth0_s0_p
ip link set veth0_s0_p up

ip addr add 2001:1db8:3333::1/64 dev br-test

ovn-nbctl set logical_router_port lr1-ls1 options:prefix_delegation=true
ovn-nbctl set logical_router_port lr1-ls1 options:prefix=true
ovn-nbctl set logical_router_port lr1-ls2 options:prefix=true
ovn-nbctl set logical_router_port lr1-ls3 options:prefix=true

cat > dhcpd6.conf << EOF
option dhcp-rebinding-time 10;
option dhcp-renewal-time 15;
option dhcp6.unicast fe80::f455:8ff:fe20:6d66;
subnet6 2001:1db8:3333::/64 {

        # Some /64 prefixes available for Prefix Delegation (RFC 3633)
        prefix6 2001:1db8:3333:100:: 2001:1db8:3333:111:: /80;
}
EOF

ip netns exec server0 dhcpd -6 -cf ./dhcpd6.conf veth0_s0

<==== set rebinding time to be larger than renewal time

after setup, check ipv6_prefix for logical_router_port:

[root@hpe-dl380pgen8-02-vm-13 bz1826623]# ovn-nbctl list logical_router_port lr1-ls1
_uuid               : 40334b9a-a0c4-46fa-b93a-495f5b54cf18
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:01"
name                : lr1-ls1
networks            : ["172.16.1.1/24"]
options             : {prefix="true", prefix_delegation="true"}
peer                : []
[root@hpe-dl380pgen8-02-vm-13 bz1826623]# ovn-nbctl list logical_router_port lr1-ls2
_uuid               : 92c3aa4f-49b5-4ff4-8a42-698f2c5ba7f4
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:02"
name                : lr1-ls2
networks            : ["172.16.1.2/24"]
options             : {prefix="true"}
peer                : []
[root@hpe-dl380pgen8-02-vm-13 bz1826623]# ovn-nbctl list logical_router_port lr1-ls3
_uuid               : 209d9369-8050-41bd-a62d-820b12f08514
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []

<==== no ipv6_prefix generated

ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:03"
name                : lr1-ls3
networks            : ["172.16.1.3/24"]
options             : {prefix="true"}
peer                : []
[root@hpe-dl380pgen8-02-vm-13 bz1826623]# rpm -qa | grep -E "openvswitch|ovn"
openvswitch2.13-2.13.0-17.el7fdp.x86_64
ovn2.13-2.13.0-30.el7fdp.x86_64
openvswitch-selinux-extra-policy-1.0-15.el7fdp.noarch
ovn2.13-central-2.13.0-30.el7fdp.x86_64
ovn2.13-host-2.13.0-30.el7fdp.x86_64

Comment 5 Jianlin Shi 2020-05-13 07:05:43 UTC
Verified on ovn2.13.0-30.el8:

[root@kvm-04-guest09 bz1826623]# ovn-nbctl list logical_router_port lr1-ls2
_uuid               : a68fe7f1-fc7a-4fa3-b629-15d155b28cf1
enabled             : []
external_ids        : {}
gateway_chassis     : []
ha_chassis_group    : []
ipv6_prefix         : []
ipv6_ra_configs     : {}
mac                 : "00:00:00:00:00:02"
name                : lr1-ls2
networks            : ["172.16.1.2/24"]
options             : {prefix="true"}
peer                : []
[root@kvm-04-guest09 bz1826623]# rpm -qa | grep ovn
ovn2.13-2.13.0-30.el8fdp.x86_64
ovn2.13-central-2.13.0-30.el8fdp.x86_64
ovn2.13-host-2.13.0-30.el8fdp.x86_64

Comment 9 errata-xmlrpc 2020-05-26 14:07:18 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://access.redhat.com/errata/RHBA-2020:2317