From 0c74068f5643b87db779bb92c73679b257e03a9c Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Thu, 15 Aug 2024 00:09:43 +0200 Subject: netlink, pasta: Turn nl_link_up() into a generic function to set link flags In the next patches, we'll reuse it to set flags other than IFF_UP. Signed-off-by: Stefano Brivio Reviewed-by: David Gibson --- netlink.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'netlink.c') diff --git a/netlink.c b/netlink.c index e33765e..873e6c7 100644 --- a/netlink.c +++ b/netlink.c @@ -968,13 +968,16 @@ int nl_link_set_mtu(int s, unsigned int ifi, int mtu) } /** - * nl_link_up() - Bring link up + * nl_link_set_flags() - Set link flags * @s: Netlink socket * @ifi: Interface index + * @set: Device flags to set + * @change: Mask of device flag changes * * Return: 0 on success, negative error code on failure */ -int nl_link_up(int s, unsigned int ifi) +int nl_link_set_flags(int s, unsigned int ifi, + unsigned int set, unsigned int change) { struct req_t { struct nlmsghdr nlh; @@ -982,8 +985,8 @@ int nl_link_up(int s, unsigned int ifi) } req = { .ifm.ifi_family = AF_UNSPEC, .ifm.ifi_index = ifi, - .ifm.ifi_flags = IFF_UP, - .ifm.ifi_change = IFF_UP, + .ifm.ifi_flags = set, + .ifm.ifi_change = change, }; return nl_do(s, &req, RTM_NEWLINK, 0, sizeof(req)); -- cgit v1.2.3