IPv6 Support in ONOS

171 views
Skip to first unread message

Charles M.C. Chan

unread,
Dec 25, 2014, 11:09:17 AM12/25/14
to onos...@onosproject.org
Hi,

Current ONOS cannot forward IPv6 packets correctly.
Following are the existing problems and the proposed solutions.

1. ReactiveForwarding ignores IPv6 multicast packets
Which means IPv6 Neighbor Solicitation is dropped and thus sender cannot discover the MAC address of the destination.
(Fortunately, IntentReactiveForwarding floods IPv6 multicast packets correctly.)
Proposed solution: Allow IPv6 multicast packets (or at least the ICMPv6 packet containing Neighbor Solicitation message) to be flooded by ReactiveForwarding module.

2. Locations of IPv6 hosts are not properly traced
HostLocationProvider only traces ARP and IPv4 packets to learn location of devices.
Therefore, for those destination hosts in pure IPv6 environment, topologyService.getPaths() would always fail to resolve a path.
-> Always Packet-In
-> Cannot determine and install flow entries
-> Always flood
Proposed solution: HostLocationProvider should also take care about Neighbor Solicitation/Advertisement and IPv6 packets.

3. No helper class for IPv6 packets
Proposed solution: org.onlab.packet.IPv6 and org.onlab.packet.ICMPv6 should be implemented

I am wondering if IPv6 support is in the next release plan or is developing by someone.
If not, may I file these issues into JIRA and start working on it?
Any advice or comment would be appreciated.

Merry Christmas and happy New Year!
Charles

Kunihiro Ishiguro

unread,
Dec 25, 2014, 7:05:48 PM12/25/14
to Charles M.C. Chan, onos...@onosproject.org
I think it is good idea to have separate JIRA ticket for each modules.
I'm currently taking a look into ReactiveForwarding module to forward
IPv6 multicast packets.
> --
> You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+u...@onosproject.org.
> To post to this group, send email to onos...@onosproject.org.
> Visit this group at http://groups.google.com/a/onosproject.org/group/onos-dev/.
> To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/98e9a664-d908-4333-826c-c2692dc8fdcf%40onosproject.org.

Ali Al-Shabibi

unread,
Dec 25, 2014, 7:12:59 PM12/25/14
to Kunihiro Ishiguro, Charles M.C. Chan, onos...@onosproject.org
These are certainly great ideas. THere is also another paert that would need work. The traffic selectors and treatments would need to be extended to support ipv6. I suggest you open JIRA issues for all of these.

Also we purposefully disabled IPv6 in the reactive forwarding because it is the default application we use for testing and in some cases during mininet startup (which generates many IPv6 solicitations) rules were being installed that were breaking any type of forwarding on the dataplane. So we decided, since reactive forwarding is really just a sample application, to disable ipv6 in it all together.

That said, if you can find a solution that works in both cases then we would certainly be happy to use that.

Hope this makes sense.
> To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/CAD5tvKMJHVTS8KV0P7eXvLLftK4mTDH3Vpi2A53rZuSpAw5k2A%40mail.gmail.com.

Kunihiro Ishiguro

unread,
Dec 25, 2014, 7:25:16 PM12/25/14
to Ali Al-Shabibi, Charles M.C. Chan, onos...@onosproject.org
>Also we purposefully disabled IPv6 in the reactive forwarding because it is the default application we use for testing and in some cases during mininet startup (which generates many IPv6 solicitations) rules were being installed that were breaking any type of forwarding on the dataplane. So we decided, since reactive forwarding is really just a sample application, to disable ipv6 in it all together.

I see. Maybe we should disable IPv6 by default. Then having
configuration option to enable IPv6 reactive forwarding.

Ali Al-Shabibi

unread,
Dec 25, 2014, 8:09:50 PM12/25/14
to Kunihiro Ishiguro, Charles M.C. Chan, onos...@onosproject.org
Sure, that's sounds good.

--
Ali Al-Shabibi (sent from handheld)

William Snow

unread,
Dec 25, 2014, 9:14:10 PM12/25/14
to Ali Al-Shabibi, Kunihiro Ishiguro, Charles M.C. Chan, onos...@onosproject.org
Pavlin was also looking into IPv6 - hopefully he can chime in




--


Bill Snow
ON.Lab
VP of Engineering
+1.650.996.3164 (m)

Charles M.C. Chan

unread,
Dec 26, 2014, 12:59:58 AM12/26/14
to onos...@onosproject.org, kunihiro...@gmail.com, ras...@gmail.com
These issues are filed into JIRA.
Please refer to ONOS-506 to 509.

Charles M.C. Chan

unread,
Dec 29, 2014, 5:11:09 AM12/29/14
to onos...@onosproject.org, kunihiro...@gmail.com, ras...@gmail.com
Hi,

I have implemented IPv6 / ICMPv6 / NeighborAdvertisement and submitted for code review. (ONOS-508)
https://gerrit.onosproject.org/#/c/2159/

What have been done in this submission:
* Implement IPv6 class, which is very similar to IPv4 (with unit test)
The following address format translation methods in IPv4 have not been implemented in IPv6 class:
- int toIPv4Address(final String ipAddress)
- int toIPv4Address(final byte[] ipAddress)
- String fromIPv4Address(final int ipAddress)
- String fromIPv4AddressCollection
- byte[] toIPv4AddressBytes(final String ipAddress)
- byte[] toIPv4AddressBytes(final int ipAddress)
I suggest that we move these methods to Ip4Address/Ip6Address instead of IPv4/IPv6

* Implement ICMP6 class, which is very similar to ICMP
The difference is that ICMP6 would check the type field and call corresponding payload class when deserializing.
NeighborAdvertisement is the only payload class for now.

* Implement NeighborAdvertisement class (with unit test)

What have NOT been done in this submission:
* IPv6 extension headers are not implemented yet. Extension headers are currently handled as payload.
* NeighborSolicitation, RouterSolicitation, RouterAdvertisement class
* ONOS-509

Already done but not included in this submission:
* ONOS-506, ONOS-507

Best regards,
Charles

Kunihiro Ishiguro

unread,
Dec 29, 2014, 6:39:22 AM12/29/14
to Charles M.C. Chan, onos...@onosproject.org
Great! I've just downloaded patch from Gerrit. Looks working fine.

BTW, I'm wondering is there any way to submit changes which depends
other changes to Gerrit?

Charles M.C. Chan

unread,
Dec 29, 2014, 6:44:22 AM12/29/14
to Kunihiro Ishiguro, onos...@onosproject.org
Hi,

It is possible to submit changes based on other changes.
Please refer to the section "Amending Submissions" on the following wiki page.

Kunihiro Ishiguro

unread,
Dec 29, 2014, 6:47:43 AM12/29/14
to Charles M.C. Chan, onos...@onosproject.org
Thanks I'll take a look into it.

>Already done but not included in this submission:
>* ONOS-506, ONOS-507

Are you going to submit these changes soon?

Charles M.C. Chan

unread,
Dec 29, 2014, 7:25:34 AM12/29/14
to Kunihiro Ishiguro, onos...@onosproject.org
On Mon Dec 29 2014 at 7:47:42 PM GMT+8 Kunihiro Ishiguro <kunihiro...@gmail.com> wrote:
>Already done but not included in this submission:
>* ONOS-506, ONOS-507
Are you going to submit these changes soon?

Hi,

I plan to do so.
However, my solutions for ONOS-506 and 507 invoke several methods in current submission.
Therefore, I would like to submit them after the review of current submission is finished and the interfaces are finalized.

Charles

Ali Al-Shabibi

unread,
Dec 29, 2014, 2:11:06 PM12/29/14
to Charles M.C. Chan, Kunihiro Ishiguro, onos...@onosproject.org
Looks great to me. Thanks. I approved your patchset.
> --
> You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+u...@onosproject.org.
> To post to this group, send email to onos...@onosproject.org.
> Visit this group at http://groups.google.com/a/onosproject.org/group/onos-dev/.
> To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/CAJJLwsNxah14KrqJUWU9vjbB-95v7rquAFtP%3D0ZNNVY4ccWYtQ%40mail.gmail.com.

Pavlin Radoslavov

unread,
Dec 29, 2014, 3:06:48 PM12/29/14
to Charles M.C. Chan, Kunihiro Ishiguro, onos...@onosproject.org
Charles,

Apology for the belated response; I was out-of-town on vacation.

To answer some of your initial high-level questions regarding IPv6.
IPv6 support is in this year's release plan. However, the primary focus for
next release (in February) will be on improving performance and stability:

https://wiki.onosproject.org/display/ONOS/Upcoming+Release+Contents#UpcomingReleaseContents-Blackbird

Nevertheless, we already started some initial work for IPv6.
Myself, I have been working on adding IPv6 support for BGP and SDN-IP:
ONOS-422 is the placeholder
ticket that will track it. Some of the BGP-related code changes are in
Gerrit (WIP entry 2155);
other changes that are more SDN-IP specific are WIP in my own tree.
Kunihiro Ishiguro already mentioned that he is looking into other
places within ONOS itself.

Your original list of tasks for IPv6 looks good (ONOS 506 - 509), and
covers the majority of the
missing core pieces. Thank you for already implementing one of those tasks!
Moving forward, you should coordinate closer with Kunihiro Ishiguro
about working
on the remaining missing pieces in the core, so you don't end up
working on the same tasks.
Myself, I will continue the IPv6 work in the BGP and SDN-IP space;
obviously, I will need
the IPv6 support in the core for the final integration and testing. By
then, if some of those
tasks are incomplete, I can start working on them.

Said that, even if all the IPv6-related development / coding is completed before
the February release cutoff date, most likely it won't have the
blessing of the OnLab Q/A
folks, because they will be busy with the performance and stability testing.
Hence, at best the IPv6 status for the Feb 2015 release will be
experimental/unsupported/untested.
Of course, this shouldn't discourage you from working on it.
The sooner we are done with the implementation of the initial core
pieces, the sooner the Q/A
folks can start working on the IPv6 test plans and implementing them.

Pavlin
> --
> You received this message because you are subscribed to the Google Groups
> "ONOS Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to onos-dev+u...@onosproject.org.
> To post to this group, send email to onos...@onosproject.org.
> Visit this group at
> http://groups.google.com/a/onosproject.org/group/onos-dev/.
> To view this discussion on the web visit
> https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/CAJJLwsNxah14KrqJUWU9vjbB-95v7rquAFtP%3D0ZNNVY4ccWYtQ%40mail.gmail.com.

Charles M.C. Chan

unread,
Dec 30, 2014, 1:34:27 AM12/30/14
to onos...@onosproject.org, ras...@gmail.com, kunihiro...@gmail.com
Pavlin,

Thanks for your feedback.
Glad to know that I am on the right track. I will keep moving on.

Suibin Zhang

unread,
Jan 5, 2015, 12:37:27 PM1/5/15
to Charles M.C. Chan, onos...@onosproject.org, kunihiro...@gmail.com
Great to see initial works being done on IPv6! 
As for IPv6 QA testing, we want to go through the overall Sprint planning to add new functional and other test cases to the QA tests.

Suibin 
Onlab QA team

--
You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+u...@onosproject.org.
To post to this group, send email to onos...@onosproject.org.
Visit this group at http://groups.google.com/a/onosproject.org/group/onos-dev/.
Reply all
Reply to author
Forward
0 new messages