summaryrefslogtreecommitdiffstats
path: root/vpp-api-test/vat/api_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'vpp-api-test/vat/api_format.c')
-rw-r--r--vpp-api-test/vat/api_format.c42
1 files changed, 31 insertions, 11 deletions
diff --git a/vpp-api-test/vat/api_format.c b/vpp-api-test/vat/api_format.c
index 5ba7fbf2b2a..5e2b3275f48 100644
--- a/vpp-api-test/vat/api_format.c
+++ b/vpp-api-test/vat/api_format.c
@@ -10533,6 +10533,8 @@ api_lisp_enable_disable (vat_main_t * vam)
typedef CLIB_PACKED(struct
{
u8 is_ip4; /**< is locator an IPv4 address? */
+ u8 priority; /**< locator priority */
+ u8 weight; /**< locator weight */
u8 addr[16]; /**< IPv4/IPv6 address */
}) rloc_t;
@@ -10655,8 +10657,8 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam)
u8 deid_type, seid_type;
u32 seid_len = 0, deid_len = 0, len;
u8 is_add = 1, del_all = 0;
- u32 action = ~0;
- rloc_t * rlocs = 0, rloc;
+ u32 action = ~0, p, w;
+ rloc_t * rlocs = 0, rloc, * curr_rloc = 0;
seid_type = deid_type = (u8)~0;
@@ -10692,14 +10694,23 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam)
seid_type = 2; /* mac */
} else if (unformat(input, "vni %d", &vni)) {
;
+ } else if (unformat(input, "p %d w %d", &p, &w)) {
+ if (!curr_rloc) {
+ errmsg ("No RLOC configured for setting priority/weight!");
+ return -99;
+ }
+ curr_rloc->priority = p;
+ curr_rloc->weight = w;
} else if (unformat(input, "rloc %U", unformat_ip4_address, &rloc4)) {
rloc.is_ip4 = 1;
clib_memcpy (&rloc.addr, &rloc4, sizeof (rloc4));
vec_add1 (rlocs, rloc);
+ curr_rloc = &rlocs[vec_len (rlocs) - 1];
} else if (unformat(input, "rloc %U", unformat_ip6_address, &rloc6)) {
rloc.is_ip4 = 0;
clib_memcpy (&rloc.addr, &rloc6, sizeof (rloc6));
vec_add1 (rlocs, rloc);
+ curr_rloc = &rlocs[vec_len (rlocs) - 1];
} else if (unformat(input, "action %d", &action)) {
;
} else {
@@ -10786,10 +10797,9 @@ api_lisp_add_del_adjacency (vat_main_t * vam)
u8 deid_type, seid_type;
u32 seid_len = 0, deid_len = 0, len;
u8 is_add = 1;
- u32 action = ~0;
- rloc_t * rlocs = 0, rloc;
+ u32 action = ~0, p, w;
+ rloc_t * rlocs = 0, rloc, * curr_rloc = 0;
- memset(mp, 0, sizeof(mp[0]));
seid_type = deid_type = (u8)~0;
/* Parse args required to build the message */
@@ -10822,18 +10832,27 @@ api_lisp_add_del_adjacency (vat_main_t * vam)
seid_type = 2; /* mac */
} else if (unformat(input, "vni %d", &vni)) {
;
+ } else if (unformat(input, "p %d w %d", &p, &w)) {
+ if (!curr_rloc) {
+ errmsg ("No RLOC configured for setting priority/weight!");
+ return -99;
+ }
+ curr_rloc->priority = p;
+ curr_rloc->weight = w;
} else if (unformat(input, "rloc %U", unformat_ip4_address, &rloc4)) {
rloc.is_ip4 = 1;
clib_memcpy (&rloc.addr, &rloc4, sizeof (rloc4));
vec_add1 (rlocs, rloc);
+ curr_rloc = &rlocs[vec_len (rlocs) - 1];
} else if (unformat(input, "rloc %U", unformat_ip6_address, &rloc6)) {
rloc.is_ip4 = 0;
clib_memcpy (&rloc.addr, &rloc6, sizeof (rloc6));
vec_add1 (rlocs, rloc);
+ curr_rloc = &rlocs[vec_len (rlocs) - 1];
} else if (unformat(input, "action %d", &action)) {
;
} else {
- clib_warning ("parse error '%U'", format_unformat_error, input);
+ errmsg ("parse error '%U'", format_unformat_error, input);
return -99;
}
}
@@ -12429,11 +12448,12 @@ _(lisp_gpe_enable_disable, "enable|disable") \
_(lisp_enable_disable, "enable|disable") \
_(lisp_gpe_add_del_iface, "up|down") \
_(lisp_add_del_remote_mapping, "add|del vni <vni> deid <dest-eid> seid" \
- " <src-eid> rloc <locator> " \
- "[rloc <loc> ... ] action <action>") \
-_(lisp_add_del_adjacency, "add|del vni <vni> deid <dest-eid> seid" \
- " <src-eid> rloc <locator> " \
- "[rloc <loc> ... ] action <action>") \
+ " <src-eid> rloc <locator> p <prio> " \
+ "w <weight> [rloc <loc> ... ] " \
+ "action <action>") \
+_(lisp_add_del_adjacency, "add|del vni <vni> deid <dest-eid> seid " \
+ "<src-eid> rloc <locator> p <prio> w <weight>"\
+ "[rloc <loc> ... ] action <action>") \
_(lisp_pitr_set_locator_set, "locator-set <loc-set-name> | del") \
_(lisp_add_del_map_request_itr_rlocs, "<loc-set-name> [del]") \
_(lisp_eid_table_add_del_map, "[del] vni <vni> vrf <vrf>") \