Dynamic IPv6 assignment for sub-port is not working 25/71825/17
authorKarthikeyan Krishnan <karthikeyangceb007@gmail.com>
Mon, 7 May 2018 10:32:47 +0000 (16:02 +0530)
committerSridhar Gaddam <sgaddam@redhat.com>
Thu, 7 Jun 2018 13:57:32 +0000 (13:57 +0000)
commit2a00c7b9346a8969ab66fdab0fa23054890e9007
tree161d514226352dee1ed1e0b943e935a26f393615
parenteaa3452a7a0f2fcd2cc620bc9c7be036f95ee2fa
Dynamic IPv6 assignment for sub-port is not working

Issue:
========
Dynamic IPv6 assignment is not working as expected for sub-ports(VLANs).
It was working for only trunk port.

Solution:
=========
IPv6 Unsolicited Periodic message is sendt out every minute from ODL
controller (Leader/Master Node for Cluster Setup) to all IPv6 VMs OF ports.
This will not work for Sub-port.Since RA packet is not checking for VLAN IDs.
As part of this fix, sending both Solicited RA and Unsolicited RA packets
to remote ELAN Group to reach all the VMs in the ELAN group. This way we
can achieve optimal way to sending perodically URA to all the IPv6 service
enabled VMs.

ACL Service Changes:
--------------------
Added code changes for allow ICMPv6 Router Advertisement packets from ODL
controller for unsolicited RA packets in EGRESS_ACL_ANTI_SPOOFING_TABLE(table 240).

For Solicited RA packets are sending out from ODL controller to VM port
directly instead of re-submitting back to Egress pipeline.

This changes will address the both RA packets from external router as well
as internal neutron router (ODL Controller) for each VM matching with
lport_tag, ICMPv6_Type=134 and IPv6_Src=fe80::/10 to allow in table 240.

Issue: NETVIRT-1245

Change-Id: Ifb75fcadd971e406674b6108ab0a9b3dc0b1f698
Signed-off-by: Karthikeyan Krishnan <karthikeyangceb007@gmail.com>
aclservice/impl/src/main/java/org/opendaylight/netvirt/aclservice/IngressAclServiceImpl.java
aclservice/impl/src/main/java/org/opendaylight/netvirt/aclservice/utils/AclServiceUtils.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/IfMgr.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/Ipv6PktHandler.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/Ipv6RouterAdvt.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/utils/Ipv6Constants.java
ipv6service/impl/src/main/java/org/opendaylight/netvirt/ipv6service/utils/Ipv6ServiceUtils.java
ipv6service/impl/src/test/java/org/opendaylight/netvirt/ipv6service/Ipv6PktHandlerTest.java