};
struct attr_extra {
- /* PMSI tunnel type (RFC 6514). */
- enum pta_type pmsi_tnl_type;
-
/* Extended Communities attribute. */
struct ecommunity *ipv6_ecommunity;
};
/* Path origin attribute */
uint8_t origin;
+ /* PMSI tunnel type (RFC 6514). */
+ enum pta_type pmsi_tnl_type;
+
/* has the route-map changed any attribute?
Used on the peer outbound side. */
uint32_t rmap_change_flags;
return (attr) ? attr->mm_seqnum : 0;
}
-static inline enum pta_type bgp_attr_get_pmsi_tnl_type(const struct attr *attr)
+static inline enum pta_type bgp_attr_get_pmsi_tnl_type(struct attr *attr)
{
- if (attr->extra)
- return attr->extra->pmsi_tnl_type;
-
- return PMSI_TNLTYPE_NO_INFO;
+ return attr->pmsi_tnl_type;
}
static inline void bgp_attr_set_pmsi_tnl_type(struct attr *attr,
enum pta_type pmsi_tnl_type)
{
- if (!attr->extra)
- attr->extra = bgp_attr_extra_alloc();
-
- attr->extra->pmsi_tnl_type = pmsi_tnl_type;
+ attr->pmsi_tnl_type = pmsi_tnl_type;
}
static inline struct ecommunity *