Hey, The reason why your name doesn't match the request is related to your code mixing vl_msg_id_t with vapi_msg_id_t. VPP internally assignes message IDs at startup based on it's runtime configuration - plugins. If a plugin is not loaded, it's API messages aren't loaded either. On the other hand, VAPI IDs are constructed when the libvapiclient binary is loaded and depend on included *.api.vapi.h files which your application is using.
TLDR: change: printf("recv msg[%d] %s\n", resp->header._vl_msg_id, vapi_get_msg_name(resp->header._vl_msg_id)); to: printf("recv msg[%d] %s\n", resp->header._vl_msg_id, vapi_get_msg_name(vapi_lookup_vapi_msg_id_t(ctx, resp->header._vl_msg_id))); Regards, Klement Quoting wangchuan...@163.com (2018-10-14 11:43:35) > My connect: > vapi_connect (ctx, "test123", NULL, 64, 32, VAPI_MODE_BLOCKING); > Even if there is no vapi_send, I can get 0 from vapi_recv after sometime. > My branch is stable 18.04. > Who can help? > Thanks very much! > > -------------------------------------------------------------------------- > > wangchuan...@163.com > > > From: [1]wangchuan...@163.com > Date: 2018-10-14 17:06 > To: [2]vpp-dev > Subject: vapi recv error msg_id&msg_name > Hi all, > I got a serious mistake when using vapi that 'recv msg->name' has > nothing to do with 'send msg-id'. > The currently installed RPMS were compiled yesterday,and i do some > change to src/*. > Should I compile my example after making pkg-rpm && installing all rpms > again? > The code like : > vapi_msg_sw_interface_set_l2_bridge *msg = > vapi_alloc_sw_interface_set_l2_bridge(ctx); > msg->payload.rx_sw_if_index = rx_sw_if_index; > msg->payload.bd_id = bd_id; > msg->payload.shg = shg; > msg->payload.shg = shg; > msg->payload.bvi = bvi; > msg->payload.enable = enable; > vapi_msg_sw_interface_set_l2_bridge_hton (msg); > vapi_error_e rv = vapi_send (ctx, msg); > vapi_msg_sw_interface_set_l2_bridge_reply *resp; > size_t size; > rv = vapi_recv (ctx, (void *) &resp, &size, 0, 0); > vapi_msg_sw_interface_set_l2_bridge_reply_hton(resp); > printf("recv msg[%d] %s\n", resp->header._vl_msg_id, > vapi_get_msg_name(resp->header._vl_msg_id) ); > ---------------------------------------------------- > recv msg[166] ip6nd_proxy_details > recv msg[23] sw_interface_tag_add_del > > -------------------------------------------------------------------------- > > wangchuan...@163.com > > References > > Visible links > 1. mailto:wangchuan...@163.com > 2. mailto:vpp-dev@lists.fd.io
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#10818): https://lists.fd.io/g/vpp-dev/message/10818 Mute This Topic: https://lists.fd.io/mt/27309659/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-