vat_socket_connect (vat_main_t * vam)
{
int rv;
+ api_main_t *am = vlibapi_get_main ();
vam->socket_client_main = &socket_client_main;
if ((rv = vl_socket_client_connect ((char *) vam->socket_name,
"vpp_api_test",
0 /* default socket rx, tx buffer */ )))
return rv;
+
/* vpp expects the client index in network order */
vam->my_client_index = htonl (socket_client_main.client_index);
+ am->my_client_index = vam->my_client_index;
return 0;
}
#else /* vpp built-in case, we don't do sockets... */
static void
increment_address (vl_api_address_t * a)
{
- if (clib_net_to_host_u32 (a->af) == ADDRESS_IP4)
+ if (a->af == ADDRESS_IP4)
increment_v4_address (&a->un.ip4);
- else if (clib_net_to_host_u32 (a->af) == ADDRESS_IP6)
+ else if (a->af == ADDRESS_IP6)
increment_v6_address (&a->un.ip6);
}
u8 behavior = ~0;
u32 sw_if_index;
u32 fib_table = ~(u32) 0;
- ip6_address_t nh_addr6;
- ip4_address_t nh_addr4;
- clib_memset (&nh_addr6, 0, sizeof (ip6_address_t));
- clib_memset (&nh_addr4, 0, sizeof (ip4_address_t));
+ ip46_address_t nh_addr;
+ clib_memset (&nh_addr, 0, sizeof (ip46_address_t));
bool nexthop_set = 0;
if (unformat (i, "del"))
is_del = 1;
else if (unformat (i, "address %U", unformat_ip6_address, &localsid));
- else if (unformat (i, "next-hop %U", unformat_ip4_address, &nh_addr4))
- nexthop_set = 1;
- else if (unformat (i, "next-hop %U", unformat_ip6_address, &nh_addr6))
+ else if (unformat (i, "next-hop %U", unformat_ip46_address, &nh_addr))
nexthop_set = 1;
else if (unformat (i, "behavior %u", &behavior));
else if (unformat (i, "sw_if_index %u", &sw_if_index));
M (SR_LOCALSID_ADD_DEL, mp);
- clib_memcpy (mp->localsid.addr, &localsid, sizeof (mp->localsid));
+ clib_memcpy (mp->localsid, &localsid, sizeof (mp->localsid));
if (nexthop_set)
{
- clib_memcpy (mp->nh_addr6, &nh_addr6, sizeof (mp->nh_addr6));
- clib_memcpy (mp->nh_addr4, &nh_addr4, sizeof (mp->nh_addr4));
+ clib_memcpy (&mp->nh_addr.un, &nh_addr, sizeof (mp->nh_addr.un));
}
mp->behavior = behavior;
mp->sw_if_index = ntohl (sw_if_index);
u8 disable_indirect_desc = 0;
u8 *tag = 0;
u8 enable_gso = 0;
+ u8 enable_packed = 0;
int ret;
/* Shut up coverity */
disable_indirect_desc = 1;
else if (unformat (i, "gso"))
enable_gso = 1;
+ else if (unformat (i, "packed"))
+ enable_packed = 1;
else if (unformat (i, "tag %s", &tag))
;
else
mp->disable_mrg_rxbuf = disable_mrg_rxbuf;
mp->disable_indirect_desc = disable_indirect_desc;
mp->enable_gso = enable_gso;
+ mp->enable_packed = enable_packed;
clib_memcpy (mp->sock_filename, file_name, vec_len (file_name));
vec_free (file_name);
if (custom_dev_instance != ~0)
u8 sw_if_index_set = 0;
u32 sw_if_index = (u32) ~ 0;
u8 enable_gso = 0;
+ u8 enable_packed = 0;
int ret;
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
is_server = 1;
else if (unformat (i, "gso"))
enable_gso = 1;
+ else if (unformat (i, "packed"))
+ enable_packed = 1;
else
break;
}
mp->sw_if_index = ntohl (sw_if_index);
mp->is_server = is_server;
mp->enable_gso = enable_gso;
+ mp->enable_packed = enable_packed;
clib_memcpy (mp->sock_filename, file_name, vec_len (file_name));
vec_free (file_name);
if (custom_dev_instance != ~0)
"crypto_key %U integ_alg %u integ_key %U flags %x "
"tunnel_src_addr %U tunnel_dst_addr %U "
"salt %u seq_outbound %lu last_seq_inbound %lu "
- "replay_window %lu\n",
+ "replay_window %lu stat_index %u\n",
ntohl (mp->entry.sad_id),
ntohl (mp->sw_if_index),
ntohl (mp->entry.spi),
&mp->entry.tunnel_dst, ntohl (mp->salt),
clib_net_to_host_u64 (mp->seq_outbound),
clib_net_to_host_u64 (mp->last_seq_inbound),
- clib_net_to_host_u64 (mp->replay_window));
+ clib_net_to_host_u64 (mp->replay_window), ntohl (mp->stat_index));
}
#define vl_api_ipsec_sa_details_t_endian vl_noop_handler
vat_json_object_add_address (node, "dst", &mp->entry.tunnel_dst);
vat_json_object_add_uint (node, "replay_window",
clib_net_to_host_u64 (mp->replay_window));
+ vat_json_object_add_uint (node, "stat_index", ntohl (mp->stat_index));
}
static int
clib_memcpy (&ip4, &fp->nh.address.ip4, sizeof (ip4));
vat_json_object_add_ip4 (node, "next_hop", ip4);
}
- else if (fp->proto == FIB_API_PATH_NH_PROTO_IP4)
+ else if (fp->proto == FIB_API_PATH_NH_PROTO_IP6)
{
clib_memcpy (&ip6, &fp->nh.address.ip6, sizeof (ip6));
vat_json_object_add_ip6 (node, "next_hop", ip6);
_(create_vhost_user_if, \
"socket <filename> [server] [renumber <dev_instance>] " \
"[disable_mrg_rxbuf] [disable_indirect_desc] [gso] " \
- "[mac <mac_address>]") \
+ "[mac <mac_address>] [packed]") \
_(modify_vhost_user_if, \
"<intfc> | sw_if_index <nn> socket <filename>\n" \
- "[server] [renumber <dev_instance>] [gso]") \
+ "[server] [renumber <dev_instance>] [gso] [packed]") \
_(delete_vhost_user_if, "<intfc> | sw_if_index <nn>") \
_(sw_interface_vhost_user_dump, "") \
_(show_version, "") \