isisd: Add new macros to define Sub-Sub-TLV ops

Add two macros `SUBSUBTLV_OPS` and `ITEM_SUBSUBTLV_OPS` that help the
developer to define the TLV operations for the IS-IS Sub-Sub-TLVs.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
This commit is contained in:
Carmine Scarpitta 2023-02-14 15:43:52 +01:00
parent b9547a0b70
commit 0afeda742c

View File

@ -6533,6 +6533,15 @@ int isis_unpack_tlvs(size_t avail_len, struct stream *stream,
#define ITEM_SUBTLV_OPS(_name_, _desc_) \ #define ITEM_SUBTLV_OPS(_name_, _desc_) \
ITEM_TLV_OPS(_name_, _desc_) ITEM_TLV_OPS(_name_, _desc_)
#define SUBSUBTLV_OPS(_name_, _desc_) \
static const struct tlv_ops subsubtlv_##_name_##_ops = { \
.name = _desc_, \
.unpack = unpack_subsubtlv_##_name_, \
}
#define ITEM_SUBSUBTLV_OPS(_name_, _desc_) \
ITEM_TLV_OPS(_name_, _desc_)
ITEM_TLV_OPS(area_address, "TLV 1 Area Addresses"); ITEM_TLV_OPS(area_address, "TLV 1 Area Addresses");
ITEM_TLV_OPS(oldstyle_reach, "TLV 2 IS Reachability"); ITEM_TLV_OPS(oldstyle_reach, "TLV 2 IS Reachability");
ITEM_TLV_OPS(lan_neighbor, "TLV 6 LAN Neighbors"); ITEM_TLV_OPS(lan_neighbor, "TLV 6 LAN Neighbors");