Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}