summaryrefslogtreecommitdiff
path: root/nest
diff options
context:
space:
mode:
Diffstat (limited to 'nest')
-rw-r--r--nest/attrs.h25
-rw-r--r--nest/config.Y2
-rw-r--r--nest/route.h1
3 files changed, 27 insertions, 1 deletions
diff --git a/nest/attrs.h b/nest/attrs.h
index 50da817b..317094e8 100644
--- a/nest/attrs.h
+++ b/nest/attrs.h
@@ -221,4 +221,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 0bb8ca51..fe1b9fcd 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -359,7 +359,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) */