aboutgitcodebugslistschat
path: root/netlink.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2023-08-03 17:19:42 +1000
committerStefano Brivio <sbrivio@redhat.com>2023-08-04 01:25:20 +0200
commit257a6b0b7e76e17bdd6e107ae643db4466960654 (patch)
tree9733127babbc8cc8a5ef49c6a0332f76b3fd5238 /netlink.h
parenteff3bcb24547e671e63df9b70157c3ff9bb9f95a (diff)
downloadpasst-257a6b0b7e76e17bdd6e107ae643db4466960654.tar
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.tar.gz
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.tar.bz2
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.tar.lz
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.tar.xz
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.tar.zst
passt-257a6b0b7e76e17bdd6e107ae643db4466960654.zip
netlink: Split nl_route() into separate operation functions
nl_route() can perform 3 quite different operations based on the 'op' parameter. Split this into separate functions for each one. This requires more lines of code, but makes the internal logic of each operation much easier to follow. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'netlink.h')
-rw-r--r--netlink.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/netlink.h b/netlink.h
index 5ac972d..36bbf9f 100644
--- a/netlink.h
+++ b/netlink.h
@@ -6,16 +6,11 @@
#ifndef NETLINK_H
#define NETLINK_H
-enum nl_op {
- NL_GET,
- NL_SET,
- NL_DUP,
-};
-
void nl_sock_init(const struct ctx *c, bool ns);
unsigned int nl_get_ext_if(sa_family_t af);
-void nl_route(enum nl_op op, unsigned int ifi, unsigned int ifi_ns,
- sa_family_t af, void *gw);
+void nl_route_get_def(unsigned int ifi, sa_family_t af, void *gw);
+void nl_route_set_def(unsigned int ifi, sa_family_t af, void *gw);
+void nl_route_dup(unsigned int ifi, unsigned int ifi_ns, sa_family_t af);
void nl_addr_get(unsigned int ifi, sa_family_t af, void *addr,
int *prefix_len, void *addr_l);
void nl_addr_set(unsigned int ifi, sa_family_t af, void *addr, int prefix_len);