Hi All, how to debug vpp punt socket registration fail/stuck? any pointers will be helpful
Thanks, Nousi On Wed, 9 Mar 2022 at 18:51, nousi via lists.fd.io <bnousilal= gmail....@lists.fd.io> wrote: > Hi Ole, > > My requirement is to sniff the NTP packets using a raw sockets, and > process them in my application. > I new bee to VPP world. > > >>The message IDs are dynamic and depend on which plugins are loaded. > i do not understand exactly. > > Thanks, > Nousi > > On Wed, 9 Mar 2022 at 17:35, <otr...@employees.org> wrote: > >> Hi, >> >> > I am not getting a reply from vpp. >> > Any pointers will be helpful. >> > Thanks in advance. >> > >> > logs below. after " writing punt socket register...:" log it does >> not come out. >> > >> > NTPSYNC-TEST:: app start >> > NTPSYNC-TEST:: VPP Server Socket bind Successful >> (/var/run/vpp-punt.sock) >> > NTPSYNC-TEST:: Connected to vpp...: 0 >> > NTPSYNC-TEST:: message id VL_API_PUNT_SOCKET_REGISTER 694 >> > NTPSYNC-TEST:: message id VL_API_PUNT_SOCKET_REGISTER 695 >> >> The message IDs are dynamic and depend on which plugins are loaded. >> Are you sure these are correct? >> >> VAPI provides a much higher level C interface. src/vpp-api/vapi/ >> Which would allow you to write much less boilerplate. >> >> Ole >> >> > NTPSYNC-TEST:: type=1 , ntohl=16777216, htonl=16777216 >> > NTPSYNC-TEST:: protocol = 17 >> > NTPSYNC-TEST:: writing punt socket register...: >> > >> > >> > code: >> > ---------------- >> > const char* Unix_socket_path = "/var/run/vpp-punt.sock"; >> > >> > int main() >> > { >> > openlog("NTPSYNC-TEST:",0, LOG_USER); >> > syslog(LOG_INFO, "app start"); >> > >> > unix_socket_rd = -1; >> > unix_socket_wr = -1; >> > strncpy(strAppName, appName, strlen(appName)); >> > maxOutStandingReq = maxOutSize; >> > responseQueSize = respSize; >> > >> > int len, rc; >> > struct sockaddr_un remote; >> > >> > memset(&remote, 0, sizeof(struct sockaddr_un)); >> > >> > unix_socket_rd = socket(AF_UNIX, SOCK_DGRAM, 0); >> > if (unix_socket_rd == -1) >> > { >> > syslog(LOG_ERR, "VPP Server socket error (%s)", >> strerror(errno)); >> > return; >> > } >> > >> > remote.sun_family = AF_UNIX; >> > strcpy(remote.sun_path, Unix_socket_path); >> > len = sizeof(remote); >> > unlink(Unix_socket_path); >> > rc = bind(unix_socket_rd, (struct sockaddr *) &remote, len); >> > if (rc == -1) >> > { >> > syslog(LOG_ERR, "VPP Server Socket bind failed (%s)", >> strerror(errno)); >> > close(unix_socket_rd); >> > return; >> > } >> > else >> > { >> > syslog(LOG_INFO, "VPP Server Socket bind Successful (%s)", >> Unix_socket_path); >> > } >> > >> > clib_mem_init(0, 3ULL << 30); >> > test_punt_socket_register_message(); >> > } >> > >> > void test_punt_socket_register_message() >> > { >> > api_main_t * am = vlibapi_get_main(); >> > vl_api_punt_socket_register_t *mp; >> > char *read_path = "/var/run/vpp.sock"; >> > int async = 1; >> > >> > int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 ); >> > if (rv != 0) >> > { >> > syslog(LOG_INFO, "Connect failed: %d \n", rv); >> > exit(rv); >> > } >> > >> > syslog(LOG_INFO,"Connected to vpp...: %d\n", rv); >> > double timestamp_start = unix_time_now_nsec() * 1e-6; >> > >> > if (async) >> > { >> > mp = vl_msg_api_alloc(sizeof(*mp)); >> > memset(mp, 0, sizeof(*mp)); >> > mp->_vl_msg_id = ntohs(VL_API_PUNT_SOCKET_REGISTER); >> > syslog(LOG_INFO," message id >> VL_API_PUNT_SOCKET_REGISTER %d", VL_API_PUNT_SOCKET_REGISTER); >> > syslog(LOG_INFO," message id >> VL_API_PUNT_SOCKET_REGISTER %d", VL_API_PUNT_SOCKET_REGISTER_REPLY); >> > mp->header_version = ntohl(1); >> > mp->punt.type = PUNT_API_TYPE_L4; >> > mp->punt.punt.l4.af = ADDRESS_IP4; >> > mp->punt.punt.l4.protocol = IP_PROTOCOL_UDP; >> > mp->punt.punt.l4.port = ntohs(123); >> > mp->client_index = am->my_client_index; >> > strncpy((char*) mp->pathname, read_path, 107); >> > syslog(LOG_INFO, " type=%u , ntohl=%u, htonl=%u", PUNT_API_TYPE_L4, >> clib_host_to_net_u32(PUNT_API_TYPE_L4), >> clib_net_to_host_u32(PUNT_API_TYPE_L4)); >> > syslog(LOG_INFO, " protocol = %u", IP_PROTOCOL_UDP); >> > >> > syslog(LOG_INFO, " writing punt socket register...: >> \n"); >> > vac_write((char *)mp, sizeof(*mp)); >> > >> > while (result_msg_id != >> VL_API_PUNT_SOCKET_REGISTER_REPLY); >> > } >> > >> > syslog(LOG_INFO," message id VL_API_PUNT_SOCKET_REGISTER %d", >> VL_API_CONTROL_PING_REPLY); >> > if (async) >> > { >> > vl_api_control_ping_t control; >> > vl_api_control_ping_t *mp; >> > mp = &control; >> > M_NOALLOC(CONTROL_PING, control_ping); >> > syslog(LOG_INFO," writing control ping message...: \n"); >> > vac_write((char *)mp, sizeof(*mp)); >> > >> > while (result_msg_id != VL_API_CONTROL_PING_REPLY); >> > } >> > >> > double timestamp_end = unix_time_now_nsec() * 1e-6; >> > syslog(LOG_INFO,"\nTook %.2f msec, %.0f msgs/msec \n", >> (timestamp_end - timestamp_start), >> > 1/(timestamp_end - >> timestamp_start)); >> > syslog(LOG_INFO,"Exiting...\n"); >> > vac_disconnect(); >> > } >> > >> > -- >> > Thanks & Regards, >> > B.Nousilal, >> > >> > >> > >> > >> >> > > -- > > > *Thanks & Regards,B.Nousilal,* > > > > -- *Thanks & Regards,B.Nousilal,*
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20996): https://lists.fd.io/g/vpp-dev/message/20996 Mute This Topic: https://lists.fd.io/mt/89660111/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-