[NETVIRT-1220] L3_GW_MAC table should match on ip/ipv6 for external network Created: 19/Apr/18  Updated: 21/Jun/18  Resolved: 21/Jun/18

Status: Resolved
Project: netvirt
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Sridhar Gaddam Assignee: Sridhar Gaddam
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently, for ingress traffic (i.e., external network), L3_GW_MAC(19)
table only includes a match for dl_dst/mac-address. When an external
network that has both IPv4 and IPv6 subnets is associated to a neutron
router, the router-gw-mac would be the same for both the subnets.
Ideally, L3_GW_MAC table should check the type of subnet and then
update the metadata to either vpnId of ext-ipv4-subnet or ext-ipv6-subnet
before sending the packet to FIB table.



 Comments   
Comment by Chetan Arakere Gowdru [ 07/May/18 ]

Hi Sridhar,

Request to share the topology used to reproduce the issue. I was trying to reproduce this using below.

1) N1 (with IPv4Subnet + IPv6Subnet)
2) VM booted with N1.
3) Router R1 created and both IPv4Subnet + IPv6Subnet.
4) External Network(with ext-IPv4Subnet + ext-IPv6Subnet) of type FLAT.
5) Router Gw set as below
neutron router-gateway-set --fixed-ip subnet_id=external-subnet,ip_address=192.168.197.195 --fixed-ip subnet_id=ext_IPV6,ip_address=2001:db8:0:7::10 router2 external-net

Currently, with this configration I see none of the L3_GW_MAC(19) installed with external-net as match criteria as its failed due to ext-routers DS not populated due to null exception in NeutronvpnNatManager.addExternalFixedIpToExternalIpsList() as there is no IPv4 check(when external-ip is Ipv6).

Thanks,
Chetan

Comment by Sridhar Gaddam [ 07/May/18 ]

Hello Chetan,

The steps you captured are correct, except that while invoking "neutron router-gateway-set ...", I do not explicitly specify the "--fixed-ips" (which BTW should not make any difference for this use-case).

Now coming back to your observation. Yes, we would see the exception with the current netvirt codebase. I'm actually working on IPv6 External Connectivity RFE and addressed lot such exceptions in the code and then noticed this Table19 issue. I'll be pushing a patch in few days, after which you can try to reproduce applying my patch in your setup.

Thanks,
--Sridhar.

Comment by Sridhar Gaddam [ 21/Jun/18 ]

Addressed via: https://git.opendaylight.org/gerrit/#/c/71093/

Generated at Wed Feb 07 20:23:32 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.