nexthop: Add support for nexthop groups
Allow the creation of nexthop groups which reference other nexthop objects to create multipath routes: +--------------+ +------------+ +--------------+ | | nh nh_grp --->| nh_grp_entry |-+ +------------+ +---------|----+ ^ | | +------------+ +----------------+ +--->| nh, weight | nh_parent +------------+ A group entry points to a nexthop with a weight for that hop within the group. The nexthop has a list_head, grp_list, for tracking which groups it is a member of and the group entry has a reference back to the parent. The grp_list is used when a nexthop is deleted - to efficiently remove it from groups using it. If a nexthop group spec is given, no other attributes can be set. Each nexthop id in a group spec must already exist. Similar to single nexthops, the specification of a nexthop group can be updated so that data is managed with rcu locking. Add path selection function to account for multiple paths and add ipv{4,6}_good_nh helpers to know that if a neighbor entry exists it is in a good state. Update NETDEV event handling to rebalance multipath nexthop groups if a nexthop is deleted due to a link event (down or unregister). When a nexthop is removed any groups using it are updated. Groups using a nexthop a tracked via a grp_list. Nexthop dumps can be limited to groups only by adding NHA_GROUPS to the request. Signed-off-by:David Ahern <dsahern@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Loading
-
mentioned in commit 9b5f6841
-
mentioned in commit 84be69b8
-
mentioned in commit ac21753a
-
mentioned in commit 90f33bff
-
mentioned in commit af7888ad
-
mentioned in commit 0b5e2e39
-
mentioned in commit 1fd1c768
-
mentioned in commit eeaac363
-
mentioned in commit 07e61a97
-
mentioned in commit 7b01e53e
Please register or sign in to comment