Hi Dave,
     Thanks for your help!
In the test.c ,  I see    "if (async) {  *send-ping* ".   
And vac_connect's 3rd input-param set to NULL, I want the operation-by-c-api to 
be synch.

Even no change, it (src/vpp-api/client) can not work successfully. 
Is there something wrong?

Maybe, should  I follow another example?
Can you give me a example that can dump sw_interfaces? 
Be deeply grateful.



wangchuan...@163.com
 
From: Dave Barach (dbarach)
Date: 2018-09-11 21:10
To: wangchuan...@163.com; vpp-dev@lists.fd.io
Subject: RE: [vpp-dev] VPP's C-type-api example
The typical coding pattern to use when you don’t know how many messages will 
come back: send a dump request, followed by an echo-ping. 
 
When the ping reply shows up, the dump is complete...
 
HTH... Dave
 
From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of 
wangchuan...@163.com
Sent: Tuesday, September 11, 2018 4:34 AM
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: [vpp-dev] VPP's C-type-api example
 
Hi all,
    I code my example following src/vpp-api/client, but do {vac_read}while(1) 
often block when the results-num does not know. 
It shows  pthread_cond_wait when gdb.
Help please! 
Thanks very much!
 
void printIntefaces()
{
  api_main_t * am = &api_main;
  vl_api_sw_interface_dump_t message;
  M_NOALLOC(SW_INTERFACE_DUMP);
  message.name_filter_valid = 0;
  strcpy(message.name_filter, "Gigabit");
  vac_write((char *)&message, sizeof(message));
  char* pMsg = NULL;
  int nLen = 0;
  int ret = 0;
  int nCount = 0;
  do  {
    printf("begin interface read .. \n");
    ret = vac_read(&pMsg, &nLen, 1);
    printf("begin interface end .. \n");
    if(ret != -1)
      {
    vl_api_sw_interface_details_t* pSV = (vl_api_sw_interface_details_t*)pMsg;
    printf("%lu:%s  \n", ntohl(pSV->sw_if_index), pSV->interface_name);
      vac_free(pMsg);
        nCount += 1;
      } 
    else{
      break;
    }
  }while(1);
 printf("get real count[%d] \n", nCount);
}
 


wangchuan...@163.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10475): https://lists.fd.io/g/vpp-dev/message/10475
Mute This Topic: https://lists.fd.io/mt/25510961/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to