Name | Organization | Role | |
---|---|---|---|
Charles Chan | NCTU | Dev Contact | rascov@gmail.com |
Dusan Pajin | AMRES | Dev / Test | dusan.pajin@amres.ac.rs |
Kunihiro Ishiguro | Dev | kunihiroishiguro@gmail.com | |
Pavlin Radoslavov | ON.Lab (inactive) | Dev | pavlin@onlab.us |
Suibin Zhang | ON.Lab | QA Contact | suibin@onlab.us |
Criterion Networks | Test |
Please feel free to add your name here if you are willing to contribute to this project.
This project aims at supporting IPv6 in ONOS, including
This document summarizes all IPv6-related tasks and guide the way to related files. Hope this can help others to easily get involved.
To enable IPv6, please first see the instruction in Experimental Features#IPv6.
Most of the IPv6 functionalities are extended from existing IPv4 design. The only worth-mentioned new design is the extension header structure.
The following figure shows the packet structure of IPv6 with extension header(s), which are treated as upper layer headers.
A for loop is required if you want to find the parent IPv6 header of a ICMPv6 packet since there might be 0+ extension header in between.
Objective: To parse IPv6-related packet headers
JIRA: 508, 510, 511, 512, 1011, 1201
Related Classes:
org.onlab.packet.{IPv6, ICMP6}
org.onlab.packet.ipv6.{Authentication, BaseOptions, DestinationOptions, EncapSecurityPayload, Fragment, HopByHopOptions, IExtensionHeader, Routing}
org.onlab.packet.ndp.{NeighborAdvertisement, NeighborSolicitation, NeighborDiscoveryOptions, RouterAdvertisement, RouterSolicitation, Redirect}
Objective: Support IPv6-related matching and action fields
JIRA: 509
Related Classes:
org.onosproject.net.flow.criteria.{Criterion, Criteria}
org.onosproject.net.flow.{DefaultTrafficSelector, TrafficSelector, TrafficTreatment, Instructions, L3ModificationInstruction}
org.onosproject.provider.of.flow.impl.{FlowEntryBuilder, FlowModBuilder, FlowModBuilderVer10, FlowModBuilderVer13}
org.onosproject.codec.impl.CriteriaCodec
org.onosproject.store.serializers.KryoNamespaces
Objective: Track the location of IPv6 hosts such that the topology service can know where to deliver the packets
JIRA: 507, 635, 637
Related Classes:
org.onosproject.provider.host.impl.{HostLocationProvider, HostMonitor}
Objective: Use proxy NDP instead of flooding
JIRA: 924, 1010, 1015, 1021
Related Classes:
org.onosproject.proxyarp.ProxyArp
org.onosproject.net.proxyarp.ProxyArpService
org.onosproject.net.proxyarp.impl.ProxyArpManager
Objective: According to RFC 2460, the upper layer checksum should include the pseudo-header when using IPv6
JIRA: 1009, 1012, 1013
Related Classes:
org.onlab.packet.{ICMP6, TCP, UDP}
Objective: Support basic forwarding of IPv6-related packets
JIRA: 506
Related Classes:
org.onosproject.fwd.ReactiveForwarding
Objective:Support IPv6 routing information exchange in SDN-IP use case
JIRA: 422, 636, 638, 639, 640, 693, 783
Related Classes:
org.onosproject.sdnip.{PeerConnectivityManager, IntentSynchronizer, RouteEntry, Router, SdnIp, SdnIpService}
org.onosproject.sdnip.bgp.{BgpConstants, BgpMessage, BgpOpen, BgpSession, BgpSessionManager, BgpUpdate, BgpRouteEntry, BgpRouteSelector}
org.onosproject.routing.cli.{BgpNeighborListCommand, BgpRoutesListCommand}
tools/tutorials/sdnip/*
Objective: Support IPv6 at REST level
JIRA: 1269
Related Classes:
As per March 18, 2015 git master, there is no REST-related code that needs to be updated for IPv6
ONOS-1277 Q/A: Run the IPv6 system tests as part of the Q/A daily tests
ONOS-1275 Update SDN-IP system test to test receiving of IPv6 routes over IPv4 and IPv6 BGP peering
ONOS-1274 Q/A: Implement the IPv6 system test plan
ONOS-1273 Q/A: Write IPv6 system test plan
ONOS-641 Update IP-related unit tests to include IPv6 as well
ONOS-1271 Add missing IPv6-related unit tests
ONOS-1270 IPv6 and SDN-IP: Verify the receiving of IPv6 routes over IPv6 BGP peering
ONOS-1268 Expose IPv6 support at the ONOS CLI level