bonding: support custom interface IDs
Change-Id: I78fe58144fa3ba2e1c7135897a13a2541f235c91
Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
diff --git a/src/vat/api_format.c b/src/vat/api_format.c
index 1b61af6..8a9a997 100644
--- a/src/vat/api_format.c
+++ b/src/vat/api_format.c
@@ -7919,6 +7919,7 @@
u8 mode;
u8 lb;
u8 mode_is_set = 0;
+ u32 id = ~0;
clib_memset (mac_address, 0, sizeof (mac_address));
lb = BOND_LB_L2;
@@ -7934,6 +7935,8 @@
else if (unformat (i, "hw-addr %U", unformat_ethernet_address,
mac_address))
custom_mac = 1;
+ else if (unformat (i, "id %u", &id))
+ ;
else
break;
}
@@ -7951,6 +7954,7 @@
mp->mode = mode;
mp->lb = lb;
+ mp->id = htonl (id);
if (custom_mac)
clib_memcpy (mp->mac_address, mac_address, 6);
@@ -23176,7 +23180,8 @@
_(sw_interface_tap_v2_dump, "") \
_(bond_create, \
"[hw-addr <mac-addr>] {round-robin | active-backup | " \
- "broadcast | {lacp | xor} [load-balance { l2 | l23 | l34 }]}") \
+ "broadcast | {lacp | xor} [load-balance { l2 | l23 | l34 }]} " \
+ "[id <if-id>]") \
_(bond_delete, \
"<vpp-if-name> | sw_if_index <id>") \
_(bond_enslave, \