device: extend device settings flags to 64 bit
authorFelix Fietkau <nbd@nbd.name>
Thu, 29 Jul 2021 18:06:14 +0000 (20:06 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 29 Jul 2021 18:06:16 +0000 (20:06 +0200)
The previous 32 bit limit is almost used up

Signed-off-by: Felix Fietkau <nbd@nbd.name>
device.h
system-dummy.c
system-linux.c
system.h

index 275deb96f94aaca2b0a1891923690d0905413d98..dcae4c727f00e61678a3934bc72db2c9d94ba2b7 100644 (file)
--- 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;
index b6b00508d70d34bea6764768f1972699ad1a1c86..ab178f3ce9d3f4b6fc218f467d005505a9c44976 100644 (file)
@@ -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;
 
index 5ea95582cb006da0d80069038aa887b2810482fe..65c62df6c6398c571f8718832c267881fb9a29f0 100644 (file)
@@ -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];
index d373b66805d84beb546c1c733330fcae8eac86d2..ae10c591b1b137db93aec98a446aca1768d38933 100644 (file)
--- 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);