-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ndp: handle nexthop updates in control plane
Do not modify nexthop objects in the data plane. It requires acquiring locks and also modifying the routing table. It can lead to races between multiple worker threads. Instead, when receiving a valid packet in ndp_{ns,na}_input, make a copy of it and send the copy to the control plane thread and do whatever is required there: * Possibly create a new nexthop for prefix routes and create a new /128 route that points to it. * Update the remote nexthop Ethernet address with the information provided in the NDP packet. * If packets are present in the nexthop hold queue, flush it and send them to ip6_output. The original mbuf is kept and sent along the graph in the same way as before (e.g. if it is an neighbour solicitation, send a reply). Change all nexthop references to const in the datapath to ensure they cannot be modified. Signed-off-by: Robin Jarry <[email protected]>
- Loading branch information
Showing
6 changed files
with
361 additions
and
319 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.