diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2018-09-28 01:03:42 +0200 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2020-05-08 18:52:55 +0200 |
commit | f271a1914e812f983e9d02178446c9351e586b9e (patch) | |
tree | 8997c028f35cdaa8ae7ff734d666654ddbdfa21e /nest | |
parent | ec46005ab296a8715d012b4944432b245df11f1b (diff) |
Filter: TLV
Diffstat (limited to 'nest')
-rw-r--r-- | nest/attrs.h | 25 | ||||
-rw-r--r-- | nest/config.Y | 2 | ||||
-rw-r--r-- | nest/route.h | 1 |
3 files changed, 27 insertions, 1 deletions
diff --git a/nest/attrs.h b/nest/attrs.h index d88a73f3..4dfc3eff 100644 --- a/nest/attrs.h +++ b/nest/attrs.h @@ -220,4 +220,29 @@ struct adata *lc_set_sort(struct linpool *pool, const struct adata *src); void ec_set_sort_x(struct adata *set); /* Sort in place */ +/* Tunnel Encapsulation TLV types */ +#define TLV_TUNNEL_TYPE 0x00 /* Reserved. Used internally only. */ +#define TLV_ENCAPSULATION 0x01 +#define TLV_COLOR 0x04 +#define TLV_TUNNEL_ENDPOINT 0x06 +#define TLV_UDP_DEST_PORT 0x08 + +/* Tunnel Encapsulation TLV */ +struct tlv { + int type; + union { + struct { + int type; + int length; + void *data; + } tunnel_encap; + struct { + u32 asn; + ip_addr ip; + } tunnel_endpoint; + u32 color; + u16 udp_dest_port; + } u; +}; + #endif diff --git a/nest/config.Y b/nest/config.Y index bd1157c6..629f6237 100644 --- a/nest/config.Y +++ b/nest/config.Y @@ -327,7 +327,7 @@ iface_patt_node_init: ; iface_patt_node_body: - TEXT { this_ipn->pattern = $1; /* this_ipn->prefix stays zero */ } + text { this_ipn->pattern = $1; /* this_ipn->prefix stays zero */ } | opttext net_or_ipa { this_ipn->pattern = $1; this_ipn->prefix = $2; } ; diff --git a/nest/route.h b/nest/route.h index 1b4f2866..96159dab 100644 --- a/nest/route.h +++ b/nest/route.h @@ -517,6 +517,7 @@ const char *ea_custom_name(uint ea); #define EAF_TYPE_INT_SET 0x0a /* Set of u32's (e.g., a community list) */ #define EAF_TYPE_EC_SET 0x0e /* Set of pairs of u32's - ext. community list */ #define EAF_TYPE_LC_SET 0x12 /* Set of triplets of u32's - large community list */ +#define EAF_TYPE_TUNNEL_ENCAP 0x16 /* Tunnel Encapsulation (encoding per draft-ietf-idr-tunnel-encaps-13) */ #define EAF_TYPE_UNDEF 0x1f /* `force undefined' entry */ #define EAF_EMBEDDED 0x01 /* Data stored in eattr.u.data (part of type spec) */ #define EAF_VAR_LENGTH 0x02 /* Attribute length is variable (part of type spec) */ |