" [ dev PHYS_DEV ]\n"
" [ dstport PORT ]\n"
" [ srcport MIN MAX ]\n"
+ " [ reserved_bits VALUE ]\n"
" [ [no]learning ]\n"
" [ [no]proxy ]\n"
" [ [no]rsc ]\n"
check_duparg(&attrs, IFLA_VXLAN_LOCALBYPASS,
*argv, *argv);
addattr8(n, 1024, IFLA_VXLAN_LOCALBYPASS, 0);
+ } else if (strcmp(*argv, "reserved_bits") == 0) {
+ NEXT_ARG();
+ __be64 bits;
+
+ check_duparg(&attrs, IFLA_VXLAN_RESERVED_BITS,
+ *argv, *argv);
+ if (get_be64(&bits, *argv, 0))
+ invarg("reserved_bits", *argv);
+ addattr_l(n, 1024, IFLA_VXLAN_RESERVED_BITS,
+ &bits, sizeof(bits));
+
} else if (!matches(*argv, "external")) {
check_duparg(&attrs, IFLA_VXLAN_COLLECT_METADATA,
*argv, *argv);
((maxaddr = rta_getattr_u32(tb[IFLA_VXLAN_LIMIT])) != 0))
print_uint(PRINT_ANY, "limit", "maxaddr %u ", maxaddr);
+ if (tb[IFLA_VXLAN_RESERVED_BITS]) {
+ __be64 reserved_bits =
+ rta_getattr_u64(tb[IFLA_VXLAN_RESERVED_BITS]);
+
+ print_0xhex(PRINT_ANY, "reserved_bits",
+ "reserved_bits %#llx ", ntohll(reserved_bits));
+ }
+
if (tb[IFLA_VXLAN_GBP])
print_null(PRINT_ANY, "gbp", "gbp ", NULL);
if (tb[IFLA_VXLAN_GPE])
] [
.BI srcport " MIN MAX "
] [
+.BI reserved_bits " VALUE "
+] [
.RB [ no ] learning
] [
.RB [ no ] proxy
- specifies the range of port numbers to use as UDP
source ports to communicate to the remote VXLAN tunnel endpoint.
+.sp
+.BI reserved_bits " VALUE "
+- by default the kernel rejects packets that have bits set outside of the fields
+required by the features enabled on the VXLAN netdevice. \fBreserved_bits\fR is
+a 64-bit quantity specifying which bits it should be possible to set in a VXLAN
+header. Each bit set in the value is a tolerated bit set in a packet.
+
.sp
.RB [ no ] learning
- specifies if unknown source link layer addresses and IP addresses