static int32_t wr_parse_lp_list( char * list, uint64_t * rt) { char * arr[3]; int32_t k; // Split up the string based on the ':' for Rx:Tx pairs k = wr_strparse( list, ":", arr, countof(arr) ); if ( (k == 0) || (k == 3) ) { fprintf(stderr, "*** Invalid string (%s)\n", list); return 1; } if ( k == 1 ) { // Must be a lcore/port number only wr_parse_rt_list(arr[0], &rt[0]); // Parse the list with no ':' character rt[1] = rt[0]; // Update the tx bitmap too. } else /* k == 2 */ { // Must be a <rx-list>:<tx-list> pair if ( wr_parse_rt_list(arr[0], &rt[0]) ) // parse <rx-list> return 1; if ( wr_parse_rt_list(arr[1], &rt[1]) ) // parse <tx-list> return 1; } return 0; }
static int32_t wr_parse_port_list(char *list, ps_t *ps) { char *arr[3]; int32_t k; /* Split up the string based on the ':' for Rx:Tx pairs */ k = wr_strparse(list, ":", arr, countof(arr) ); if ( (k == 0) || (k == 3) ) { fprintf(stderr, "*** Invalid string (%s)\n", list); return 1; } if (k == 1) { /* Must be a lcore/port number only */ wr_parse_rt_list(arr[0], ps[RX_IDX].ps); /* Parse the list with no ':' character */ memcpy(ps[TX_IDX].ps, ps[RX_IDX].ps, sizeof(ps_t)); /* Update the tx bitmap too. */ } else { /* k == 2 */ /* Must be a <rx-list>:<tx-list> pair */ if (wr_parse_rt_list(arr[0], ps[RX_IDX].ps) ) /* parse <rx-list> */ return 1; if (wr_parse_rt_list(arr[1], ps[TX_IDX].ps) ) /* parse <tx-list> */ return 1; } return 0; }