src/dpdk/lib/librte_mbuf/rte_mbuf.c
int
rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
	const struct flag_mask tx_flags[] = {
		{ PKT_TX_VLAN, PKT_TX_VLAN, NULL },
		{ PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
		{ PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_SCTP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_UDP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_L4_NO_CKSUM, PKT_TX_L4_MASK, "PKT_TX_L4_NO_CKSUM" },
		{ PKT_TX_IEEE1588_TMST, PKT_TX_IEEE1588_TMST, NULL },
		{ PKT_TX_TCP_SEG, PKT_TX_TCP_SEG, NULL },
		{ PKT_TX_IPV4, PKT_TX_IPV4, NULL },
		{ PKT_TX_IPV6, PKT_TX_IPV6, NULL },
		{ PKT_TX_OUTER_IP_CKSUM, PKT_TX_OUTER_IP_CKSUM, NULL },
		{ PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
		{ PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
		{ PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GTP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_QINQ, PKT_TX_QINQ, NULL },
		{ PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
		{ PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
		{ PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
		{ PKT_TX_OUTER_UDP_CKSUM, PKT_TX_OUTER_UDP_CKSUM, NULL },
	};
	const char *name;
	unsigned int i;
	int ret;

	if (buflen == 0)
		return -1;

	buf[0] = '\0';
	for (i = 0; i < RTE_DIM(tx_flags); i++) {
		if ((mask & tx_flags[i].mask) != tx_flags[i].flag)
			continue;
		name = rte_get_tx_ol_flag_name(tx_flags[i].flag);
		if (name == NULL)
			name = tx_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 tx ol flags in buffer buf */
write the list of tx ol flags in buffer buf
write the list of tx ol flags in buffer buf
int
rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
	const struct flag_mask tx_flags[] = {
		{ PKT_TX_VLAN, PKT_TX_VLAN, NULL },
		{ PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
		{ PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_SCTP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_UDP_CKSUM, PKT_TX_L4_MASK, NULL },
		{ PKT_TX_L4_NO_CKSUM, PKT_TX_L4_MASK, "PKT_TX_L4_NO_CKSUM" },
		{ PKT_TX_IEEE1588_TMST, PKT_TX_IEEE1588_TMST, NULL },
		{ PKT_TX_TCP_SEG, PKT_TX_TCP_SEG, NULL },
		{ PKT_TX_IPV4, PKT_TX_IPV4, NULL },
		{ PKT_TX_IPV6, PKT_TX_IPV6, NULL },
		{ PKT_TX_OUTER_IP_CKSUM, PKT_TX_OUTER_IP_CKSUM, NULL },
		{ PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
		{ PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
		{ PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GTP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
		{ PKT_TX_QINQ, PKT_TX_QINQ, NULL },
		{ PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
		{ PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
		{ PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
		{ PKT_TX_OUTER_UDP_CKSUM, PKT_TX_OUTER_UDP_CKSUM, NULL },
	};
	const char *name;
	unsigned int i;
	int ret;
	if (buflen == 0)
		return -1;
	buf[0] = '\0';
	for (i = 0; i < RTE_DIM(tx_flags); i++) {
		if ((mask & tx_flags[i].mask) != tx_flags[i].flag)
			continue;
		name = rte_get_tx_ol_flag_name(tx_flags[i].flag);
		if (name == NULL)
			name = tx_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_tx_ol_flag_list ( uint64_t mask , char * buf , size_t buflen ) { const struct flag_mask tx_flags [ ] = { { PKT_TX_VLAN , PKT_TX_VLAN , NULL } , { PKT_TX_IP_CKSUM , PKT_TX_IP_CKSUM , NULL } , { PKT_TX_TCP_CKSUM , PKT_TX_L4_MASK , NULL } , { PKT_TX_SCTP_CKSUM , PKT_TX_L4_MASK , NULL } , { PKT_TX_UDP_CKSUM , PKT_TX_L4_MASK , NULL } , { PKT_TX_L4_NO_CKSUM , PKT_TX_L4_MASK , " " } , { PKT_TX_IEEE1588_TMST , PKT_TX_IEEE1588_TMST , NULL } , { PKT_TX_TCP_SEG , PKT_TX_TCP_SEG , NULL } , { PKT_TX_IPV4 , PKT_TX_IPV4 , NULL } , { PKT_TX_IPV6 , PKT_TX_IPV6 , NULL } , { PKT_TX_OUTER_IP_CKSUM , PKT_TX_OUTER_IP_CKSUM , NULL } , { PKT_TX_OUTER_IPV4 , PKT_TX_OUTER_IPV4 , NULL } , { PKT_TX_OUTER_IPV6 , PKT_TX_OUTER_IPV6 , NULL } , { PKT_TX_TUNNEL_VXLAN , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_GTP , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_GRE , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_IPIP , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_GENEVE , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_MPLSINUDP , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_VXLAN_GPE , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_IP , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_TUNNEL_UDP , PKT_TX_TUNNEL_MASK , NULL } , { PKT_TX_QINQ , PKT_TX_QINQ , NULL } , { PKT_TX_MACSEC , PKT_TX_MACSEC , NULL } , { PKT_TX_SEC_OFFLOAD , PKT_TX_SEC_OFFLOAD , NULL } , { PKT_TX_UDP_SEG , PKT_TX_UDP_SEG , NULL } , { PKT_TX_OUTER_UDP_CKSUM , PKT_TX_OUTER_UDP_CKSUM , NULL } , } ; const char * name ; unsigned int i ; int ret ; if ( buflen == 0 ) return -1 ; buf [ 0 ] = ' \0 ' ; for ( i = 0 ; i < RTE_DIM ( tx_flags ) ; i ++ ) { if ( ( mask & tx_flags [ i ] . mask ) != tx_flags [ i ] . flag ) continue ; name = rte_get_tx_ol_flag_name ( tx_flags [ i ] . flag ) ; if ( name == NULL ) name = tx_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 tx ol flags in buffer buf
write the list of tx ol flags in buffer buf