#define VXLAN_ATTR_UDP_ZERO_CSUM6_RX (1<<19)
#define VXLAN_ATTR_REMCSUM_TX (1<<20)
#define VXLAN_ATTR_REMCSUM_RX (1<<21)
-#define VXLAN_ATTR_GBP (1<<22)
-#define VXLAN_ATTR_REMCSUM_NOPARTIAL (1<<23)
-#define VXLAN_ATTR_COLLECT_METADATA (1<<24)
-#define VXLAN_ATTR_LABEL (1<<25)
-#define VXLAN_ATTR_GPE (1<<26)
-
+#define VXLAN_ATTR_COLLECT_METADATA (1<<22)
+#define VXLAN_ATTR_LABEL (1<<23)
+#define VXLAN_ATTR_FLAGS (1<<24)
struct vxlan_info
{
uint8_t vxi_ttl;
uint8_t vxi_tos;
uint8_t vxi_learning;
+ uint8_t vxi_flags;
uint32_t vxi_ageing;
uint32_t vxi_limit;
struct ifla_vxlan_port_range vxi_port_range;
}
if (tb[IFLA_VXLAN_GBP])
- vxi->ce_mask |= VXLAN_ATTR_GBP;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_GBP;
if (tb[IFLA_VXLAN_REMCSUM_NOPARTIAL])
- vxi->ce_mask |= VXLAN_ATTR_REMCSUM_NOPARTIAL;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL;
if (tb[IFLA_VXLAN_COLLECT_METADATA]) {
vxi->vxi_collect_metadata = nla_get_u8(tb[IFLA_VXLAN_COLLECT_METADATA]);
}
if (tb[IFLA_VXLAN_GPE])
- vxi->ce_mask |= VXLAN_ATTR_GPE;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_GPE;
err = 0;
nl_dump_line(p, "disabled\n");
}
- if (vxi->ce_mask & VXLAN_ATTR_GBP)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_GBP)
nl_dump(p, " gbp\n");
- if (vxi->ce_mask & VXLAN_ATTR_REMCSUM_NOPARTIAL)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL)
nl_dump(p, " rncsum-nopartial\n");
if (vxi->ce_mask & VXLAN_ATTR_COLLECT_METADATA) {
nl_dump_line(p, "%u\n", ntohl(vxi->vxi_label));
}
- if (vxi->ce_mask & VXLAN_ATTR_GPE)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_GPE)
nl_dump(p, " gpe\n");
}
if (vxi->ce_mask & VXLAN_ATTR_REMCSUM_RX)
NLA_PUT_U8(msg, IFLA_VXLAN_REMCSUM_RX, vxi->vxi_remcsum_rx);
- if (vxi->ce_mask & VXLAN_ATTR_GBP)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_GBP)
NLA_PUT_FLAG(msg, IFLA_VXLAN_GBP);
- if (vxi->ce_mask & VXLAN_ATTR_REMCSUM_NOPARTIAL)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL)
NLA_PUT_FLAG(msg, IFLA_VXLAN_REMCSUM_NOPARTIAL);
if (vxi->ce_mask & VXLAN_ATTR_COLLECT_METADATA)
if (vxi->ce_mask & VXLAN_ATTR_LABEL)
NLA_PUT_U32(msg, IFLA_VXLAN_LABEL, vxi->vxi_label);
- if (vxi->ce_mask & VXLAN_ATTR_GPE)
+ if (vxi->vxi_flags & RTNL_LINK_VXLAN_F_GPE)
NLA_PUT_FLAG(msg, IFLA_VXLAN_GPE);
nla_nest_end(msg, data);
diff |= VXLAN_DIFF(UDP_ZERO_CSUM6_RX, a->vxi_proxy != b->vxi_proxy);
diff |= VXLAN_DIFF(REMCSUM_TX, a->vxi_proxy != b->vxi_proxy);
diff |= VXLAN_DIFF(REMCSUM_RX, a->vxi_proxy != b->vxi_proxy);
- diff |= VXLAN_DIFF(GBP, a->ce_mask & b->ce_mask & VXLAN_ATTR_GBP);
- diff |= VXLAN_DIFF(REMCSUM_NOPARTIAL, a->ce_mask & b->ce_mask & VXLAN_ATTR_REMCSUM_NOPARTIAL);
diff |= VXLAN_DIFF(COLLECT_METADATA, a->vxi_collect_metadata != b->vxi_collect_metadata);
diff |= VXLAN_DIFF(LABEL, a->vxi_label != b->vxi_label);
- diff |= VXLAN_DIFF(GPE, a->ce_mask & b->ce_mask & VXLAN_ATTR_GPE);
+ diff |= VXLAN_DIFF(FLAGS, a->vxi_flags != b->vxi_flags);
#undef VXLAN_DIFF
return diff;
IS_VXLAN_LINK_ASSERT(link);
if (enable)
- vxi->ce_mask |= VXLAN_ATTR_GBP;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_GBP;
else
- vxi->ce_mask &= ~VXLAN_ATTR_GBP;
+ vxi->vxi_flags &= ~RTNL_LINK_VXLAN_F_GBP;
return 0;
}
IS_VXLAN_LINK_ASSERT(link);
- return !!(vxi->ce_mask & VXLAN_ATTR_GBP);
+ return !!(vxi->vxi_flags & RTNL_LINK_VXLAN_F_GBP);
}
/**
IS_VXLAN_LINK_ASSERT(link);
if (enable)
- vxi->ce_mask |= VXLAN_ATTR_REMCSUM_NOPARTIAL;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL;
else
- vxi->ce_mask &= ~VXLAN_ATTR_REMCSUM_NOPARTIAL;
+ vxi->vxi_flags &= ~RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL;
return 0;
}
IS_VXLAN_LINK_ASSERT(link);
- return !!(vxi->ce_mask & VXLAN_ATTR_REMCSUM_NOPARTIAL);
+ return !!(vxi->vxi_flags & RTNL_LINK_VXLAN_F_REMCSUM_NOPARTIAL);
}
/**
IS_VXLAN_LINK_ASSERT(link);
if (enable)
- vxi->ce_mask |= VXLAN_ATTR_GPE;
+ vxi->vxi_flags |= RTNL_LINK_VXLAN_F_GPE;
else
- vxi->ce_mask &= ~VXLAN_ATTR_GPE;
+ vxi->vxi_flags &= ~RTNL_LINK_VXLAN_F_GPE;
return 0;
}
IS_VXLAN_LINK_ASSERT(link);
- return !!(vxi->ce_mask & VXLAN_ATTR_GPE);
+ return !!(vxi->vxi_flags & RTNL_LINK_VXLAN_F_GPE);
}
/** @} */