Hi,

I would like to share the current state and the next steps for the 
nhops/multipath project.

To recap: project is about modernising the current routing stack and 
implementing scalable multipath routing. 

Most changes are based on introduction of the concept of nexthops. Nexthops, 
which are separate datastructures, containing all necessary information to 
perform packet forwarding such as gateway, interface and mtu. They are shared 
among the routes, providing more pre-computed cache-efficient data while 
requiring less memory.
Interested reader can find more detailed description in 
https://reviews.freebsd.org/D24141 .


Notable progress has been done since the initial announce.

Most of the changes required to fully switch to use nexthop objects instead of 
routing entries has been landed.
If everything goes as expected, conversion will be completed in a couple of 
weeks.
After that the focus will switch on the actual multipath implementation.

More detailed plan:

1 Nexthop objects [In progress]
1.1 Introduction of nexthop objects [DONE: r359823]
1.2 Conversion of old KPI users to the new one [95% complete]
1.2.1 Conversion of route caching to nexthop caching [DONE: r360292]
1.3 Conversion of struct `rtentry` field access to nhop field access [90% 
complete]
1.4 Eliminating old lookup KPI and hiding struct rtentry. [50% complete]

2 Multipath [In progress]
2.1 Switch control plane customers to use (rtentry, nhop) pair instead of 
rtentry to allow multipath changes happen transparently. [10% complete]
2.2 Introduce nexthop group objects
2.3 Add mutipath support for the rib manipulation functions
2.4 Add flowid generation for outbound traffic to enable load balancing

--
[No timeline]

3 Rtsock/netlink nhops support
3.1 Implement index lookup for nhops/nhop groups
3.2 Design rtsock messages for nhop/nhgrp operations& prefix binding
3.3 Implement kernel part
3.4 Implement frr or bird support

4 Modular longest-prefix-match lookup algorithm
4.1 Design control plane framework for attaching algos.
4.2 Implement one (IPv6?) lookup algorithm



/Alexander

_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to