| diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h |
| index 1b3c2b6..00bbbf8 100644 |
| --- a/include/uapi/linux/if_bridge.h |
| +++ b/include/uapi/linux/if_bridge.h |
| @@ -130,6 +130,7 @@ enum { |
| #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */ |
| #define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */ |
| #define BRIDGE_VLAN_INFO_BRENTRY (1<<5) /* Global bridge VLAN entry */ |
| +#define BRIDGE_VLAN_INFO_ONLY_OPTS (1<<6) /* Skip create/delete/flags */ |
| |
| struct bridge_vlan_info { |
| __u16 flags; |
| @@ -156,6 +157,112 @@ struct bridge_vlan_xstats { |
| __u32 pad2; |
| }; |
| |
| +/* Bridge vlan RTM header */ |
| +struct br_vlan_msg { |
| + __u8 family; |
| + __u8 reserved1; |
| + __u16 reserved2; |
| + __u32 ifindex; |
| +}; |
| + |
| +enum { |
| + BRIDGE_VLANDB_DUMP_UNSPEC, |
| + BRIDGE_VLANDB_DUMP_FLAGS, |
| + __BRIDGE_VLANDB_DUMP_MAX, |
| +}; |
| +#define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1) |
| + |
| +/* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */ |
| +#define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */ |
| +#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1) /* Dump global vlan options only */ |
| + |
| +/* Bridge vlan RTM attributes |
| + * [BRIDGE_VLANDB_ENTRY] = { |
| + * [BRIDGE_VLANDB_ENTRY_INFO] |
| + * ... |
| + * } |
| + * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = { |
| + * [BRIDGE_VLANDB_GOPTS_ID] |
| + * ... |
| + * } |
| + */ |
| +enum { |
| + BRIDGE_VLANDB_UNSPEC, |
| + BRIDGE_VLANDB_ENTRY, |
| + BRIDGE_VLANDB_GLOBAL_OPTIONS, |
| + __BRIDGE_VLANDB_MAX, |
| +}; |
| +#define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1) |
| + |
| +enum { |
| + BRIDGE_VLANDB_ENTRY_UNSPEC, |
| + BRIDGE_VLANDB_ENTRY_INFO, |
| + BRIDGE_VLANDB_ENTRY_RANGE, |
| + BRIDGE_VLANDB_ENTRY_STATE, |
| + BRIDGE_VLANDB_ENTRY_TUNNEL_INFO, |
| + BRIDGE_VLANDB_ENTRY_STATS, |
| + BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, |
| + __BRIDGE_VLANDB_ENTRY_MAX, |
| +}; |
| +#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) |
| + |
| +/* [BRIDGE_VLANDB_ENTRY] = { |
| + * [BRIDGE_VLANDB_ENTRY_TUNNEL_INFO] = { |
| + * [BRIDGE_VLANDB_TINFO_ID] |
| + * ... |
| + * } |
| + * } |
| + */ |
| +enum { |
| + BRIDGE_VLANDB_TINFO_UNSPEC, |
| + BRIDGE_VLANDB_TINFO_ID, |
| + BRIDGE_VLANDB_TINFO_CMD, |
| + __BRIDGE_VLANDB_TINFO_MAX, |
| +}; |
| +#define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1) |
| + |
| +/* [BRIDGE_VLANDB_ENTRY] = { |
| + * [BRIDGE_VLANDB_ENTRY_STATS] = { |
| + * [BRIDGE_VLANDB_STATS_RX_BYTES] |
| + * ... |
| + * } |
| + * ... |
| + * } |
| + */ |
| +enum { |
| + BRIDGE_VLANDB_STATS_UNSPEC, |
| + BRIDGE_VLANDB_STATS_RX_BYTES, |
| + BRIDGE_VLANDB_STATS_RX_PACKETS, |
| + BRIDGE_VLANDB_STATS_TX_BYTES, |
| + BRIDGE_VLANDB_STATS_TX_PACKETS, |
| + BRIDGE_VLANDB_STATS_PAD, |
| + __BRIDGE_VLANDB_STATS_MAX, |
| +}; |
| +#define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1) |
| + |
| +enum { |
| + BRIDGE_VLANDB_GOPTS_UNSPEC, |
| + BRIDGE_VLANDB_GOPTS_ID, |
| + BRIDGE_VLANDB_GOPTS_RANGE, |
| + BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING, |
| + BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION, |
| + BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION, |
| + BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT, |
| + BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT, |
| + BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL, |
| + BRIDGE_VLANDB_GOPTS_PAD, |
| + BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL, |
| + BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL, |
| + BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL, |
| + BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL, |
| + BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL, |
| + BRIDGE_VLANDB_GOPTS_MCAST_QUERIER, |
| + BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS, |
| + BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE, |
| + __BRIDGE_VLANDB_GOPTS_MAX |
| +}; |
| +#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1) |
| + |
| /* Bridge multicast database attributes |
| * [MDBA_MDB] = { |
| * [MDBA_MDB_ENTRY] = { |
| diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h |
| index a6aa466..6abd5a1 100644 |
| --- a/include/uapi/linux/pkt_cls.h |
| +++ b/include/uapi/linux/pkt_cls.h |
| @@ -16,9 +16,37 @@ enum { |
| TCA_ACT_STATS, |
| TCA_ACT_PAD, |
| TCA_ACT_COOKIE, |
| + TCA_ACT_FLAGS, |
| + TCA_ACT_HW_STATS, |
| + TCA_ACT_USED_HW_STATS, |
| __TCA_ACT_MAX |
| }; |
| |
| +/* See other TCA_ACT_FLAGS_ * flags in include/net/act_api.h. */ |
| +#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for |
| + * actions stats. |
| + */ |
| + |
| +/* tca HW stats type |
| + * When user does not pass the attribute, he does not care. |
| + * It is the same as if he would pass the attribute with |
| + * all supported bits set. |
| + * In case no bits are set, user is not interested in getting any HW statistics. |
| + */ |
| +#define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0) /* Means that in dump, user |
| + * gets the current HW stats |
| + * state from the device |
| + * queried at the dump time. |
| + */ |
| +#define TCA_ACT_HW_STATS_DELAYED (1 << 1) /* Means that in dump, user gets |
| + * HW stats that might be out of date |
| + * for some time, maybe couple of |
| + * seconds. This is the case when |
| + * driver polls stats updates |
| + * periodically or when it gets async |
| + * stats update from the device. |
| + */ |
| + |
| #define TCA_ACT_MAX __TCA_ACT_MAX |
| #define TCA_OLD_COMPAT (TCA_ACT_MAX+1) |
| #define TCA_ACT_MAX_PRIO 32 |
| diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h |
| index 96eca6e..ff43cb9 100644 |
| --- a/include/uapi/linux/rtnetlink.h |
| +++ b/include/uapi/linux/rtnetlink.h |
| @@ -164,6 +164,13 @@ enum { |
| RTM_GETNEXTHOP, |
| #define RTM_GETNEXTHOP RTM_GETNEXTHOP |
| |
| + RTM_NEWVLAN = 112, |
| +#define RTM_NEWNVLAN RTM_NEWVLAN |
| + RTM_DELVLAN, |
| +#define RTM_DELVLAN RTM_DELVLAN |
| + RTM_GETVLAN, |
| +#define RTM_GETVLAN RTM_GETVLAN |
| + |
| __RTM_MAX, |
| #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) |
| }; |
| @@ -717,6 +724,8 @@ enum rtnetlink_groups { |
| #define RTNLGRP_IPV6_MROUTE_R RTNLGRP_IPV6_MROUTE_R |
| RTNLGRP_NEXTHOP, |
| #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP |
| + RTNLGRP_BRVLAN, |
| +#define RTNLGRP_BRVLAN RTNLGRP_BRVLAN |
| __RTNLGRP_MAX |
| }; |
| #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) |