Skip to content

routing: add IPv6 dynamic routing (RIPng and OSPFv3) - #1630

Open
saba8814 wants to merge 1 commit into
mainfrom
dynamic-routing-on-ipv6
Open

saba8814 wants to merge 1 commit into
mainfrom
dynamic-routing-on-ipv6

Conversation

@saba8814

@saba8814 saba8814 commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Add support for dynamic IPv6 routing with OSPFv3 and RIPng:

  • RIPng: mirror of the RIPv2 feature set on IPv6 (basic, passive
    interfaces, multi-hop, redistribution), driven through netd.
  • OSPFv3: address-family ipv6 with areas, NSSA/stub, interface types
    (broadcast, point-to-point, hybrid), cost/priority/timers, BFD,
    default-route advertisement and redistribution (incl. RIPng <-> OSPFv3).
  • Operational state via statd (show ipv6 ospf [neighbor|interface|route])
  • Full test coverage for both protocols.

Limitations

  • OSPFv3 requires an explicit-router-id (no IPv4 to derive one from).
  • ospf6d has no totally-NSSA, no default-cost, and no non-broadcast /
    static-neighbor interfaces; these are rejected/omitted accordingly.
  • OSPFv3 next-hops are IPv6 link-local, so paths are verified by
    traceroute rather than by RIB next-hop matching.

Original PR: #1577

Description

Checklist

Tick relevant boxes, this PR is-a or has-a:

  • Bugfix
    • Regression tests
    • ChangeLog updates (for next release)
  • Feature
    • YANG model change => revision updated?
    • Regression tests added?
    • ChangeLog updates (for next release)
    • Documentation added?
  • Test changes
    • Checked in changed Readme.adoc (make test-spec)
    • Added new test to group Readme.adoc and yaml file
  • Code style update (formatting, renaming)
  • Refactoring (please detail in commit messages)
  • Build related changes
  • Documentation content changes
    • ChangeLog updated (for major changes)
  • Other (please describe):

@troglobit troglobit left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if these ospfv3.adoc files are just remnants of the old copy-paste regime, because I couldn't find their corresponding Python docstring in code, so I assume they are generated then. In which case I suggest lifting out the IP address details from figures and placing them in tables¹ after the ASCII art image. This would make the ASCII art cleaner as well and candidate for draw.io replacements in the style of other tests.

Other than that, this looks great, awesome work on this! 👍


¹)

Router IPv4 IPv6
R1 ... ...
R2 ... ...
R3 ... ...

Comment thread test/case/routing/ospf_default_route_advertise/ospfv3.adoc Outdated
Comment thread test/case/routing/ospf_multiarea/ospfv3.adoc Outdated
Comment thread test/case/routing/ospf_point_to_multipoint_hybrid/ospfv3.adoc Outdated
@saba8814
saba8814 force-pushed the dynamic-routing-on-ipv6 branch 3 times, most recently from a85f4bf to 0396722 Compare September 14, 2026 14:14
Comment thread test/case/routing/ospf_bfd/test.py Outdated
Comment thread test/case/routing/ospf_bfd/test.py Outdated
@saba8814
saba8814 force-pushed the dynamic-routing-on-ipv6 branch from 0396722 to 71c8189 Compare September 15, 2026 09:40
@saba8814
saba8814 requested a review from mattiaswal September 16, 2026 12:58
@saba8814
saba8814 force-pushed the dynamic-routing-on-ipv6 branch from 71c8189 to 7383abb Compare September 17, 2026 06:44
Add support for dynamic IPv6 routing with OSPFv3 and RIPng:

- RIPng: mirror of the RIPv2 feature set on IPv6 (basic, passive
  interfaces, multi-hop, redistribution), driven through netd.
- OSPFv3: address-family ipv6 with areas, NSSA/stub, interface types
  (broadcast, point-to-point, hybrid), cost/priority/timers, BFD,
  default-route advertisement and redistribution (incl. RIPng <-> OSPFv3).
- Operational state via statd (show ipv6 ospf [neighbor|interface|route])
- Full  test coverage for both protocols.

Limitations
- OSPFv3 requires an explicit-router-id (no IPv4 to derive one from).
- ospf6d has no totally-NSSA, no default-cost, and no non-broadcast /
  static-neighbor interfaces; these are rejected/omitted accordingly.
- OSPFv3 next-hops are IPv6 link-local, so paths are verified by
  traceroute rather than by RIB next-hop matching.

Signed-off-by: Ejub Sabic <ejub1946@outlook.com>
@saba8814
saba8814 force-pushed the dynamic-routing-on-ipv6 branch from 7383abb to 80fca82 Compare September 17, 2026 11:01
Comment thread doc/routing.md
@saba8814
saba8814 requested a review from mattiaswal September 18, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants