src/dpdk/lib/librte_mbuf/rte_mbuf.c
int
rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
	const struct flag_mask rx_flags[] = {
		{ PKT_RX_VLAN, PKT_RX_VLAN, NULL },
		{ PKT_RX_RSS_HASH, PKT_RX_RSS_HASH, NULL },
		{ PKT_RX_FDIR, PKT_RX_FDIR, NULL },
		{ PKT_RX_L4_CKSUM_BAD, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_GOOD, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_NONE, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_UNKNOWN, PKT_RX_L4_CKSUM_MASK,
		  "PKT_RX_L4_CKSUM_UNKNOWN" },
		{ PKT_RX_IP_CKSUM_BAD, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_GOOD, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_NONE, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_UNKNOWN, PKT_RX_IP_CKSUM_MASK,
		  "PKT_RX_IP_CKSUM_UNKNOWN" },
		{ PKT_RX_EIP_CKSUM_BAD, PKT_RX_EIP_CKSUM_BAD, NULL },
		{ PKT_RX_VLAN_STRIPPED, PKT_RX_VLAN_STRIPPED, NULL },
		{ PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
		{ PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
		{ PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
		{ PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
		{ PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
		{ PKT_RX_LRO, PKT_RX_LRO, NULL },
		{ PKT_RX_SEC_OFFLOAD, PKT_RX_SEC_OFFLOAD, NULL },
		{ PKT_RX_SEC_OFFLOAD_FAILED, PKT_RX_SEC_OFFLOAD_FAILED, NULL },
		{ PKT_RX_QINQ, PKT_RX_QINQ, NULL },
		{ PKT_RX_OUTER_L4_CKSUM_BAD, PKT_RX_OUTER_L4_CKSUM_MASK, NULL },
		{ PKT_RX_OUTER_L4_CKSUM_GOOD, PKT_RX_OUTER_L4_CKSUM_MASK,
		  NULL },
		{ PKT_RX_OUTER_L4_CKSUM_INVALID, PKT_RX_OUTER_L4_CKSUM_MASK,
		  NULL },
		{ PKT_RX_OUTER_L4_CKSUM_UNKNOWN, PKT_RX_OUTER_L4_CKSUM_MASK,
		  "PKT_RX_OUTER_L4_CKSUM_UNKNOWN" },
	};
	const char *name;
	unsigned int i;
	int ret;

	if (buflen == 0)
		return -1;

	buf[0] = '\0';
	for (i = 0; i < RTE_DIM(rx_flags); i++) {
		if ((mask & rx_flags[i].mask) != rx_flags[i].flag)
			continue;
		name = rte_get_rx_ol_flag_name(rx_flags[i].flag);
		if (name == NULL)
			name = rx_flags[i].default_name;
		ret = snprintf(buf, buflen, "%s ", name);
		if (ret < 0)
			return -1;
		if ((size_t)ret >= buflen)
			return -1;
		buf += ret;
		buflen -= ret;
	}

	return 0;
}
/* write the list of rx ol flags in buffer buf */
write the list of rx ol flags in buffer buf
write the list of rx ol flags in buffer buf
int
rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
	const struct flag_mask rx_flags[] = {
		{ PKT_RX_VLAN, PKT_RX_VLAN, NULL },
		{ PKT_RX_RSS_HASH, PKT_RX_RSS_HASH, NULL },
		{ PKT_RX_FDIR, PKT_RX_FDIR, NULL },
		{ PKT_RX_L4_CKSUM_BAD, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_GOOD, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_NONE, PKT_RX_L4_CKSUM_MASK, NULL },
		{ PKT_RX_L4_CKSUM_UNKNOWN, PKT_RX_L4_CKSUM_MASK,
		  "PKT_RX_L4_CKSUM_UNKNOWN" },
		{ PKT_RX_IP_CKSUM_BAD, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_GOOD, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_NONE, PKT_RX_IP_CKSUM_MASK, NULL },
		{ PKT_RX_IP_CKSUM_UNKNOWN, PKT_RX_IP_CKSUM_MASK,
		  "PKT_RX_IP_CKSUM_UNKNOWN" },
		{ PKT_RX_EIP_CKSUM_BAD, PKT_RX_EIP_CKSUM_BAD, NULL },
		{ PKT_RX_VLAN_STRIPPED, PKT_RX_VLAN_STRIPPED, NULL },
		{ PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
		{ PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
		{ PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
		{ PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
		{ PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
		{ PKT_RX_LRO, PKT_RX_LRO, NULL },
		{ PKT_RX_SEC_OFFLOAD, PKT_RX_SEC_OFFLOAD, NULL },
		{ PKT_RX_SEC_OFFLOAD_FAILED, PKT_RX_SEC_OFFLOAD_FAILED, NULL },
		{ PKT_RX_QINQ, PKT_RX_QINQ, NULL },
		{ PKT_RX_OUTER_L4_CKSUM_BAD, PKT_RX_OUTER_L4_CKSUM_MASK, NULL },
		{ PKT_RX_OUTER_L4_CKSUM_GOOD, PKT_RX_OUTER_L4_CKSUM_MASK,
		  NULL },
		{ PKT_RX_OUTER_L4_CKSUM_INVALID, PKT_RX_OUTER_L4_CKSUM_MASK,
		  NULL },
		{ PKT_RX_OUTER_L4_CKSUM_UNKNOWN, PKT_RX_OUTER_L4_CKSUM_MASK,
		  "PKT_RX_OUTER_L4_CKSUM_UNKNOWN" },
	};
	const char *name;
	unsigned int i;
	int ret;
	if (buflen == 0)
		return -1;
	buf[0] = '\0';
	for (i = 0; i < RTE_DIM(rx_flags); i++) {
		if ((mask & rx_flags[i].mask) != rx_flags[i].flag)
			continue;
		name = rte_get_rx_ol_flag_name(rx_flags[i].flag);
		if (name == NULL)
			name = rx_flags[i].default_name;
		ret = snprintf(buf, buflen, "%s ", name);
		if (ret < 0)
			return -1;
		if ((size_t)ret >= buflen)
			return -1;
		buf += ret;
		buflen -= ret;
	}
	return 0;
}
int rte_get_rx_ol_flag_list ( uint64_t mask , char * buf , size_t buflen ) { const struct flag_mask rx_flags [ ] = { { PKT_RX_VLAN , PKT_RX_VLAN , NULL } , { PKT_RX_RSS_HASH , PKT_RX_RSS_HASH , NULL } , { PKT_RX_FDIR , PKT_RX_FDIR , NULL } , { PKT_RX_L4_CKSUM_BAD , PKT_RX_L4_CKSUM_MASK , NULL } , { PKT_RX_L4_CKSUM_GOOD , PKT_RX_L4_CKSUM_MASK , NULL } , { PKT_RX_L4_CKSUM_NONE , PKT_RX_L4_CKSUM_MASK , NULL } , { PKT_RX_L4_CKSUM_UNKNOWN , PKT_RX_L4_CKSUM_MASK , " " } , { PKT_RX_IP_CKSUM_BAD , PKT_RX_IP_CKSUM_MASK , NULL } , { PKT_RX_IP_CKSUM_GOOD , PKT_RX_IP_CKSUM_MASK , NULL } , { PKT_RX_IP_CKSUM_NONE , PKT_RX_IP_CKSUM_MASK , NULL } , { PKT_RX_IP_CKSUM_UNKNOWN , PKT_RX_IP_CKSUM_MASK , " " } , { PKT_RX_EIP_CKSUM_BAD , PKT_RX_EIP_CKSUM_BAD , NULL } , { PKT_RX_VLAN_STRIPPED , PKT_RX_VLAN_STRIPPED , NULL } , { PKT_RX_IEEE1588_PTP , PKT_RX_IEEE1588_PTP , NULL } , { PKT_RX_IEEE1588_TMST , PKT_RX_IEEE1588_TMST , NULL } , { PKT_RX_FDIR_ID , PKT_RX_FDIR_ID , NULL } , { PKT_RX_FDIR_FLX , PKT_RX_FDIR_FLX , NULL } , { PKT_RX_QINQ_STRIPPED , PKT_RX_QINQ_STRIPPED , NULL } , { PKT_RX_LRO , PKT_RX_LRO , NULL } , { PKT_RX_SEC_OFFLOAD , PKT_RX_SEC_OFFLOAD , NULL } , { PKT_RX_SEC_OFFLOAD_FAILED , PKT_RX_SEC_OFFLOAD_FAILED , NULL } , { PKT_RX_QINQ , PKT_RX_QINQ , NULL } , { PKT_RX_OUTER_L4_CKSUM_BAD , PKT_RX_OUTER_L4_CKSUM_MASK , NULL } , { PKT_RX_OUTER_L4_CKSUM_GOOD , PKT_RX_OUTER_L4_CKSUM_MASK , NULL } , { PKT_RX_OUTER_L4_CKSUM_INVALID , PKT_RX_OUTER_L4_CKSUM_MASK , NULL } , { PKT_RX_OUTER_L4_CKSUM_UNKNOWN , PKT_RX_OUTER_L4_CKSUM_MASK , " " } , } ; const char * name ; unsigned int i ; int ret ; if ( buflen == 0 ) return -1 ; buf [ 0 ] = ' \0 ' ; for ( i = 0 ; i < RTE_DIM ( rx_flags ) ; i ++ ) { if ( ( mask & rx_flags [ i ] . mask ) != rx_flags [ i ] . flag ) continue ; name = rte_get_rx_ol_flag_name ( rx_flags [ i ] . flag ) ; if ( name == NULL ) name = rx_flags [ i ] . default_name ; ret = snprintf ( buf , buflen , " " , name ) ; if ( ret < 0 ) return -1 ; if ( ( size_t ) ret >= buflen ) return -1 ; buf += ret ; buflen -= ret ; } return 0 ; }
write the list of rx ol flags in buffer buf
write the list of rx ol flags in buffer buf