• Benjamin Poirier's avatar
    net: mpls: Fix notifications when deleting a device · 7d4741ea
    Benjamin Poirier authored
    There are various problems related to netlink notifications for mpls route
    changes in response to interfaces being deleted:
    * delete interface of only nexthop
    	DELROUTE notification is missing RTA_OIF attribute
    * delete interface of non-last nexthop
    	NEWROUTE notification is missing entirely
    * delete interface of last nexthop
    	DELROUTE notification is missing nexthop
    
    All of these problems stem from the fact that existing routes are modified
    in-place before sending a notification. Restructure mpls_ifdown() to avoid
    changing the route in the DELROUTE cases and to create a copy in the
    NEWROUTE case.
    
    Fixes: f8efb73c ("mpls: multipath route support")
    Signed-off-by: default avatarBenjamin Poirier <bpoirier@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7d4741ea
af_mpls.c 63.9 KB