[PATCH 1/2] alfred: import batadv_netlink_policy from batctl
Sven Eckelmann <[email protected]> Tue, 28 Jul 2026 19:26:18 +0200
| Newsgroups | org.open-mesh.lists.batman |
|---|---|
| Message-ID | <[email protected]> |
The batcl policy is more complete and is cleaner formatted than the alfred version. Just import then new one to keep them in sync. Signed-off-by: Sven Eckelmann <[email protected]> --- netlink.c | 277 ++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 197 insertions(+), 80 deletions(-) diff --git a/netlink.c b/netlink.c index fe5e749..d2cccfb 100644 --- a/netlink.c +++ b/netlink.c @@ -27,86 +27,203 @@ #endif struct nla_policy batadv_netlink_policy[NUM_BATADV_ATTR] = { - [BATADV_ATTR_VERSION] = { .type = NLA_STRING }, - [BATADV_ATTR_ALGO_NAME] = { .type = NLA_STRING }, - [BATADV_ATTR_MESH_IFINDEX] = { .type = NLA_U32 }, - [BATADV_ATTR_MESH_IFNAME] = { .type = NLA_STRING, - .maxlen = IFNAMSIZ }, - [BATADV_ATTR_MESH_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_HARD_IFINDEX] = { .type = NLA_U32 }, - [BATADV_ATTR_HARD_IFNAME] = { .type = NLA_STRING, - .maxlen = IFNAMSIZ }, - [BATADV_ATTR_HARD_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_ORIG_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_TPMETER_RESULT] = { .type = NLA_U8 }, - [BATADV_ATTR_TPMETER_TEST_TIME] = { .type = NLA_U32 }, - [BATADV_ATTR_TPMETER_BYTES] = { .type = NLA_U64 }, - [BATADV_ATTR_TPMETER_COOKIE] = { .type = NLA_U32 }, - [BATADV_ATTR_PAD] = { .type = NLA_UNSPEC }, - [BATADV_ATTR_ACTIVE] = { .type = NLA_FLAG }, - [BATADV_ATTR_TT_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_TT_TTVN] = { .type = NLA_U8 }, - [BATADV_ATTR_TT_LAST_TTVN] = { .type = NLA_U8 }, - [BATADV_ATTR_TT_CRC32] = { .type = NLA_U32 }, - [BATADV_ATTR_TT_VID] = { .type = NLA_U16 }, - [BATADV_ATTR_TT_FLAGS] = { .type = NLA_U32 }, - [BATADV_ATTR_FLAG_BEST] = { .type = NLA_FLAG }, - [BATADV_ATTR_LAST_SEEN_MSECS] = { .type = NLA_U32 }, - [BATADV_ATTR_NEIGH_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_TQ] = { .type = NLA_U8 }, - [BATADV_ATTR_THROUGHPUT] = { .type = NLA_U32 }, - [BATADV_ATTR_BANDWIDTH_UP] = { .type = NLA_U32 }, - [BATADV_ATTR_BANDWIDTH_DOWN] = { .type = NLA_U32 }, - [BATADV_ATTR_ROUTER] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_BLA_OWN] = { .type = NLA_FLAG }, - [BATADV_ATTR_BLA_ADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_BLA_VID] = { .type = NLA_U16 }, - [BATADV_ATTR_BLA_BACKBONE] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_BLA_CRC] = { .type = NLA_U16 }, - [BATADV_ATTR_DAT_CACHE_IP4ADDRESS] = { .type = NLA_U32 }, - [BATADV_ATTR_DAT_CACHE_HWADDRESS] = { .type = NLA_UNSPEC, - .minlen = ETH_ALEN, - .maxlen = ETH_ALEN }, - [BATADV_ATTR_DAT_CACHE_VID] = { .type = NLA_U16 }, - [BATADV_ATTR_MCAST_FLAGS] = { .type = NLA_U32 }, - [BATADV_ATTR_MCAST_FLAGS_PRIV] = { .type = NLA_U32 }, - [BATADV_ATTR_VLANID] = { .type = NLA_U16 }, - [BATADV_ATTR_AGGREGATED_OGMS_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_AP_ISOLATION_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_ISOLATION_MARK] = { .type = NLA_U32 }, - [BATADV_ATTR_ISOLATION_MASK] = { .type = NLA_U32 }, - [BATADV_ATTR_BONDING_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_FRAGMENTATION_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_GW_BANDWIDTH_DOWN] = { .type = NLA_U32 }, - [BATADV_ATTR_GW_BANDWIDTH_UP] = { .type = NLA_U32 }, - [BATADV_ATTR_GW_MODE] = { .type = NLA_U8 }, - [BATADV_ATTR_GW_SEL_CLASS] = { .type = NLA_U32 }, - [BATADV_ATTR_HOP_PENALTY] = { .type = NLA_U8 }, - [BATADV_ATTR_LOG_LEVEL] = { .type = NLA_U32 }, - [BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_MULTICAST_FANOUT] = { .type = NLA_U32 }, - [BATADV_ATTR_NETWORK_CODING_ENABLED] = { .type = NLA_U8 }, - [BATADV_ATTR_ORIG_INTERVAL] = { .type = NLA_U32 }, - [BATADV_ATTR_ELP_INTERVAL] = { .type = NLA_U32 }, - [BATADV_ATTR_THROUGHPUT_OVERRIDE] = { .type = NLA_U32 }, + [BATADV_ATTR_VERSION] = { + .type = NLA_STRING, + }, + [BATADV_ATTR_ALGO_NAME] = { + .type = NLA_STRING, + }, + [BATADV_ATTR_MESH_IFINDEX] = { + .type = NLA_U32, + }, + [BATADV_ATTR_MESH_IFNAME] = { + .type = NLA_STRING, + .maxlen = IFNAMSIZ, + }, + [BATADV_ATTR_MESH_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_HARD_IFINDEX] = { + .type = NLA_U32, + }, + [BATADV_ATTR_HARD_IFNAME] = { + .type = NLA_STRING, + .maxlen = IFNAMSIZ, + }, + [BATADV_ATTR_HARD_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_ORIG_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_TPMETER_RESULT] = { + .type = NLA_U8, + }, + [BATADV_ATTR_TPMETER_TEST_TIME] = { + .type = NLA_U32, + }, + [BATADV_ATTR_TPMETER_BYTES] = { + .type = NLA_U64, + }, + [BATADV_ATTR_TPMETER_COOKIE] = { + .type = NLA_U32, + }, + [BATADV_ATTR_PAD] = { + .type = NLA_UNSPEC, + }, + [BATADV_ATTR_ACTIVE] = { + .type = NLA_FLAG, + }, + [BATADV_ATTR_TT_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_TT_TTVN] = { + .type = NLA_U8, + }, + [BATADV_ATTR_TT_LAST_TTVN] = { + .type = NLA_U8, + }, + [BATADV_ATTR_TT_CRC32] = { + .type = NLA_U32, + }, + [BATADV_ATTR_TT_VID] = { + .type = NLA_U16, + }, + [BATADV_ATTR_TT_FLAGS] = { + .type = NLA_U32, + }, + [BATADV_ATTR_FLAG_BEST] = { + .type = NLA_FLAG, + }, + [BATADV_ATTR_LAST_SEEN_MSECS] = { + .type = NLA_U32, + }, + [BATADV_ATTR_NEIGH_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_TQ] = { + .type = NLA_U8, + }, + [BATADV_ATTR_THROUGHPUT] = { + .type = NLA_U32, + }, + [BATADV_ATTR_BANDWIDTH_UP] = { + .type = NLA_U32, + }, + [BATADV_ATTR_BANDWIDTH_DOWN] = { + .type = NLA_U32, + }, + [BATADV_ATTR_ROUTER] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_BLA_OWN] = { + .type = NLA_FLAG, + }, + [BATADV_ATTR_BLA_ADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_BLA_VID] = { + .type = NLA_U16, + }, + [BATADV_ATTR_BLA_BACKBONE] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_BLA_CRC] = { + .type = NLA_U16, + }, + [BATADV_ATTR_DAT_CACHE_IP4ADDRESS] = { + .type = NLA_U32, + }, + [BATADV_ATTR_DAT_CACHE_HWADDRESS] = { + .type = NLA_UNSPEC, + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [BATADV_ATTR_DAT_CACHE_VID] = { + .type = NLA_U16, + }, + [BATADV_ATTR_MCAST_FLAGS] = { + .type = NLA_U32, + }, + [BATADV_ATTR_MCAST_FLAGS_PRIV] = { + .type = NLA_U32, + }, + [BATADV_ATTR_VLANID] = { + .type = NLA_U16, + }, + [BATADV_ATTR_AGGREGATED_OGMS_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_AP_ISOLATION_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_ISOLATION_MARK] = { + .type = NLA_U32, + }, + [BATADV_ATTR_ISOLATION_MASK] = { + .type = NLA_U32, + }, + [BATADV_ATTR_BONDING_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_FRAGMENTATION_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_GW_BANDWIDTH_DOWN] = { + .type = NLA_U32, + }, + [BATADV_ATTR_GW_BANDWIDTH_UP] = { + .type = NLA_U32, + }, + [BATADV_ATTR_GW_MODE] = { + .type = NLA_U8, + }, + [BATADV_ATTR_GW_SEL_CLASS] = { + .type = NLA_U32, + }, + [BATADV_ATTR_HOP_PENALTY] = { + .type = NLA_U8, + }, + [BATADV_ATTR_LOG_LEVEL] = { + .type = NLA_U32, + }, + [BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED] = { + .type = NLA_U8, + }, + [BATADV_ATTR_ORIG_INTERVAL] = { + .type = NLA_U32, + }, + [BATADV_ATTR_ELP_INTERVAL] = { + .type = NLA_U32, + }, + [BATADV_ATTR_THROUGHPUT_OVERRIDE] = { + .type = NLA_U32, + }, + [BATADV_ATTR_MULTICAST_FANOUT] = { + .type = NLA_U32, + }, }; int missing_mandatory_attrs(struct nlattr *attrs[], const int mandatory[], -- 2.47.3