1
0
Fork 0
mirror of https://passt.top/passt synced 2025-06-19 13:35:34 +02:00

conf, tap: Split netlink and pasta functions, allow interface configuration

Move netlink routines to their own file, and use netlink to configure
or fetch all the information we need, except for the TUNSETIFF ioctl.

Move pasta-specific functions to their own file as well, add
parameters and calls to configure the tap interface in the namespace.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
Stefano Brivio 2021-10-11 12:01:31 +02:00
parent dcd3605d14
commit 675174d4ba
11 changed files with 703 additions and 609 deletions

9
util.h
View file

@ -39,6 +39,12 @@ void debug(const char *format, ...);
#define V6 1
#define IP_VERSIONS 2
enum {
IP_VERSION_DISABLED = 0,
IP_VERSION_ENABLED,
IP_VERSION_PROBE,
};
#define ARRAY_SIZE(a) ((int)(sizeof(a) / sizeof((a)[0])))
#define IN_INTERVAL(a, b, x) ((x) >= (a) && (x) <= (b))
@ -48,6 +54,9 @@ void debug(const char *format, ...);
#define PORT_EPHEMERAL_MIN ((1 << 15) + (1 << 14)) /* RFC 6335 */
#define PORT_IS_EPHEMERAL(port) ((port) >= PORT_EPHEMERAL_MIN)
#define MAC_ZERO ((uint8_t [ETH_ALEN]){ 0 })
#define MAC_IS_ZERO(addr) (!memcmp((addr), MAC_ZERO, ETH_ALEN))
#define NS_FN_STACK_SIZE (RLIMIT_STACK_VAL * 1024 / 4)
#define NS_CALL(fn, arg) \
do { \