diff --git a/include/netlink/route/link.h b/include/netlink/route/link.h index aaa15d2c..db58ac02 100644 --- a/include/netlink/route/link.h +++ b/include/netlink/route/link.h @@ -199,6 +199,7 @@ extern int rtnl_link_get_master(struct rtnl_link *); extern void rtnl_link_set_carrier(struct rtnl_link *, uint8_t); extern uint8_t rtnl_link_get_carrier(struct rtnl_link *); +extern void rtnl_link_unset_carrier_request_flag(struct rtnl_link *); extern int rtnl_link_get_carrier_changes(struct rtnl_link *, uint32_t *); diff --git a/lib/route/link.c b/lib/route/link.c index 15436d8d..cd0082af 100644 --- a/lib/route/link.c +++ b/lib/route/link.c @@ -2433,6 +2433,17 @@ uint8_t rtnl_link_get_carrier(struct rtnl_link *link) return link->l_carrier; } +/** + * Unset carrier request of link object + * @arg link Link object + * + * @see rtnl_link_set_carrier() + */ +void rtnl_link_unset_carrier_request_flag(struct rtnl_link *link) +{ + link->ce_mask &= ~LINK_ATTR_CARRIER; +} + /** * Return carrier on/off changes of link object * @arg link Link object diff --git a/libnl-route-3.sym b/libnl-route-3.sym index 1b65c521..305ba30d 100644 --- a/libnl-route-3.sym +++ b/libnl-route-3.sym @@ -1358,4 +1358,5 @@ global: rtnl_interlink_set_net_id; rtnl_flower_set_ip_ttl; rtnl_flower_get_ip_ttl; + rtnl_link_unset_carrier_request_flag; } libnl_3_6;