From 94170ae24bc96aa988eb901f19cce2aebdb046f5 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 29 Jul 2021 20:06:14 +0200 Subject: [PATCH 1/1] device: extend device settings flags to 64 bit The previous 32 bit limit is almost used up Signed-off-by: Felix Fietkau --- device.h | 64 +++++++++++++++++++++++++------------------------- system-dummy.c | 2 +- system-linux.c | 2 +- system.h | 2 +- 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/device.h b/device.h index 275deb9..dcae4c7 100644 --- a/device.h +++ b/device.h @@ -91,36 +91,36 @@ struct device_type { }; enum { - DEV_OPT_MTU = (1 << 0), - DEV_OPT_MACADDR = (1 << 1), - DEV_OPT_TXQUEUELEN = (1 << 2), - DEV_OPT_IPV6 = (1 << 3), - DEV_OPT_PROMISC = (1 << 4), - DEV_OPT_RPFILTER = (1 << 5), - DEV_OPT_ACCEPTLOCAL = (1 << 6), - DEV_OPT_IGMPVERSION = (1 << 7), - DEV_OPT_MLDVERSION = (1 << 8), - DEV_OPT_NEIGHREACHABLETIME = (1 << 9), - DEV_OPT_DEFAULT_MACADDR = (1 << 10), - DEV_OPT_AUTH = (1 << 11), - DEV_OPT_MTU6 = (1 << 12), - DEV_OPT_DADTRANSMITS = (1 << 13), - DEV_OPT_MULTICAST_TO_UNICAST = (1 << 14), - DEV_OPT_MULTICAST_ROUTER = (1 << 15), - DEV_OPT_MULTICAST = (1 << 16), - DEV_OPT_LEARNING = (1 << 17), - DEV_OPT_UNICAST_FLOOD = (1 << 18), - DEV_OPT_NEIGHGCSTALETIME = (1 << 19), - DEV_OPT_MULTICAST_FAST_LEAVE = (1 << 20), - DEV_OPT_SENDREDIRECTS = (1 << 21), - DEV_OPT_NEIGHLOCKTIME = (1 << 22), - DEV_OPT_ISOLATE = (1 << 23), - DEV_OPT_IP6SEGMENTROUTING = (1 << 24), - DEV_OPT_DROP_V4_UNICAST_IN_L2_MULTICAST = (1 << 25), - DEV_OPT_DROP_V6_UNICAST_IN_L2_MULTICAST = (1 << 26), - DEV_OPT_DROP_GRATUITOUS_ARP = (1 << 27), - DEV_OPT_DROP_UNSOLICITED_NA = (1 << 28), - DEV_OPT_ARP_ACCEPT = (1 << 29), + DEV_OPT_MTU = (1ULL << 0), + DEV_OPT_MACADDR = (1ULL << 1), + DEV_OPT_TXQUEUELEN = (1ULL << 2), + DEV_OPT_IPV6 = (1ULL << 3), + DEV_OPT_PROMISC = (1ULL << 4), + DEV_OPT_RPFILTER = (1ULL << 5), + DEV_OPT_ACCEPTLOCAL = (1ULL << 6), + DEV_OPT_IGMPVERSION = (1ULL << 7), + DEV_OPT_MLDVERSION = (1ULL << 8), + DEV_OPT_NEIGHREACHABLETIME = (1ULL << 9), + DEV_OPT_DEFAULT_MACADDR = (1ULL << 10), + DEV_OPT_AUTH = (1ULL << 11), + DEV_OPT_MTU6 = (1ULL << 12), + DEV_OPT_DADTRANSMITS = (1ULL << 13), + DEV_OPT_MULTICAST_TO_UNICAST = (1ULL << 14), + DEV_OPT_MULTICAST_ROUTER = (1ULL << 15), + DEV_OPT_MULTICAST = (1ULL << 16), + DEV_OPT_LEARNING = (1ULL << 17), + DEV_OPT_UNICAST_FLOOD = (1ULL << 18), + DEV_OPT_NEIGHGCSTALETIME = (1ULL << 19), + DEV_OPT_MULTICAST_FAST_LEAVE = (1ULL << 20), + DEV_OPT_SENDREDIRECTS = (1ULL << 21), + DEV_OPT_NEIGHLOCKTIME = (1ULL << 22), + DEV_OPT_ISOLATE = (1ULL << 23), + DEV_OPT_IP6SEGMENTROUTING = (1ULL << 24), + DEV_OPT_DROP_V4_UNICAST_IN_L2_MULTICAST = (1ULL << 25), + DEV_OPT_DROP_V6_UNICAST_IN_L2_MULTICAST = (1ULL << 26), + DEV_OPT_DROP_GRATUITOUS_ARP = (1ULL << 27), + DEV_OPT_DROP_UNSOLICITED_NA = (1ULL << 28), + DEV_OPT_ARP_ACCEPT = (1ULL << 29), }; /* events broadcasted to all users of a device */ @@ -163,8 +163,8 @@ struct device_user { }; struct device_settings { - unsigned int flags; - unsigned int valid_flags; + uint64_t flags; + uint64_t valid_flags; unsigned int mtu; unsigned int mtu6; unsigned int txqueuelen; diff --git a/system-dummy.c b/system-dummy.c index b6b0050..ab178f3 100644 --- a/system-dummy.c +++ b/system-dummy.c @@ -162,7 +162,7 @@ system_if_dump_stats(struct device *dev, struct blob_buf *b) } void -system_if_apply_settings(struct device *dev, struct device_settings *s, unsigned int apply_mask) +system_if_apply_settings(struct device *dev, struct device_settings *s, uint64_t apply_mask) { apply_mask &= s->flags; diff --git a/system-linux.c b/system-linux.c index 5ea9558..65c62df 100644 --- a/system-linux.c +++ b/system-linux.c @@ -1706,7 +1706,7 @@ system_if_get_settings(struct device *dev, struct device_settings *s) } void -system_if_apply_settings(struct device *dev, struct device_settings *s, unsigned int apply_mask) +system_if_apply_settings(struct device *dev, struct device_settings *s, uint64_t apply_mask) { struct ifreq ifr; char buf[12]; diff --git a/system.h b/system.h index d373b66..ae10c59 100644 --- a/system.h +++ b/system.h @@ -233,7 +233,7 @@ int system_if_dump_stats(struct device *dev, struct blob_buf *b); struct device *system_if_get_parent(struct device *dev); bool system_if_force_external(const char *ifname); void system_if_apply_settings(struct device *dev, struct device_settings *s, - unsigned int apply_mask); + uint64_t apply_mask); int system_add_address(struct device *dev, struct device_addr *addr); int system_del_address(struct device *dev, struct device_addr *addr); -- 2.30.2