Lines Matching defs:data
33 fwd_apply(struct fwd_data *data,
36 data->action = p->action;
39 data->port_id = p->id;
42 data->table_id = p->id;
68 lb_apply(struct lb_data *data,
71 memcpy(data->out, p->out, sizeof(data->out));
78 struct lb_data *data,
91 out_val = data->out[pos];
114 #define MTR_TRTCM_DATA_METER_PROFILE_ID_GET(data) \
115 (((data)->stats[RTE_COLOR_GREEN] & 0xF8LLU) >> 3)
118 mtr_trtcm_data_meter_profile_id_set(struct mtr_trtcm_data *data,
121 data->stats[RTE_COLOR_GREEN] &= ~0xF8LLU;
122 data->stats[RTE_COLOR_GREEN] |= (profile_id % 32) << 3;
125 #define MTR_TRTCM_DATA_POLICER_ACTION_DROP_GET(data, color)\
126 (((data)->stats[(color)] & 4LLU) >> 2)
128 #define MTR_TRTCM_DATA_POLICER_ACTION_COLOR_GET(data, color)\
129 ((enum rte_color)((data)->stats[(color)] & 3LLU))
132 mtr_trtcm_data_policer_action_set(struct mtr_trtcm_data *data,
137 data->stats[color] |= 4LLU;
139 data->stats[color] &= ~7LLU;
140 data->stats[color] |= color & 3LLU;
145 mtr_trtcm_data_stats_get(struct mtr_trtcm_data *data,
148 return data->stats[color] >> 8;
152 mtr_trtcm_data_stats_reset(struct mtr_trtcm_data *data,
155 data->stats[color] &= 0xFFLU;
158 #define MTR_TRTCM_DATA_STATS_INC(data, color) \
159 ((data)->stats[(color)] += (1LLU << 8))
245 mtr_apply(struct mtr_trtcm_data *data,
262 struct mtr_trtcm_data *data_tc = &data[i];
306 struct mtr_trtcm_data *data,
320 data += tc;
321 mp_id = MTR_TRTCM_DATA_METER_PROFILE_ID_GET(data);
325 &data->trtcm,
332 MTR_TRTCM_DATA_STATS_INC(data, color_meter);
335 drop_mask = MTR_TRTCM_DATA_POLICER_ACTION_DROP_GET(data, color_meter);
337 MTR_TRTCM_DATA_POLICER_ACTION_COLOR_GET(data, color_meter);
376 tm_apply(struct tm_data *data,
388 data->queue_id = p->subport_id <<
397 struct tm_data *data,
402 uint32_t queue_id = data->queue_id |
606 encap_ether_apply(void *data,
610 struct encap_ether_data *d = data;
624 encap_vlan_apply(void *data,
628 struct encap_vlan_data *d = data;
648 encap_qinq_apply(void *data,
652 struct encap_qinq_data *d = data;
678 encap_qinq_pppoe_apply(void *data,
681 struct encap_qinq_pppoe_data *d = data;
710 encap_mpls_apply(void *data,
713 struct encap_mpls_data *d = data;
741 encap_pppoe_apply(void *data,
744 struct encap_pppoe_data *d = data;
761 encap_vxlan_apply(void *data,
774 struct encap_vxlan_ipv4_vlan_data *d = data;
815 struct encap_vxlan_ipv4_data *d = data;
852 struct encap_vxlan_ipv6_vlan_data *d = data;
889 struct encap_vxlan_ipv6_data *d = data;
923 encap_apply(void *data,
937 return encap_ether_apply(data, p, common_cfg);
940 return encap_vlan_apply(data, p, common_cfg);
943 return encap_qinq_apply(data, p, common_cfg);
946 return encap_mpls_apply(data, p);
949 return encap_pppoe_apply(data, p);
952 return encap_vxlan_apply(data, p, cfg);
955 return encap_qinq_pppoe_apply(data, p);
1100 void *data,
1108 encap(ip, data, sizeof(struct encap_ether_data));
1116 encap(ip, data, sizeof(struct encap_vlan_data));
1124 encap(ip, data, sizeof(struct encap_qinq_data));
1133 struct encap_mpls_data *mpls = data;
1137 encap(ip, data, size);
1146 encap(ip, data, sizeof(struct encap_pppoe_data));
1158 encap(ip, data, sizeof(struct encap_qinq_pppoe_data));
1171 pkt_work_encap_vxlan_ipv4_vlan(mbuf, data, cfg);
1173 pkt_work_encap_vxlan_ipv4(mbuf, data, cfg);
1176 pkt_work_encap_vxlan_ipv6_vlan(mbuf, data, cfg);
1178 pkt_work_encap_vxlan_ipv6(mbuf, data, cfg);
1232 nat_apply(void *data,
1245 struct nat_ipv4_data *d = data;
1250 struct nat_ipv6_data *d = data;
1336 struct nat_ipv4_data *data,
1346 data->addr);
1350 data->addr,
1352 data->port);
1354 ip->src_addr = data->addr;
1356 tcp->src_port = data->port;
1364 data->addr);
1368 data->addr,
1370 data->port);
1372 ip->src_addr = data->addr;
1374 udp->src_port = data->port;
1385 data->addr);
1389 data->addr,
1391 data->port);
1393 ip->dst_addr = data->addr;
1395 tcp->dst_port = data->port;
1403 data->addr);
1407 data->addr,
1409 data->port);
1411 ip->dst_addr = data->addr;
1413 udp->dst_port = data->port;
1422 struct nat_ipv6_data *data,
1432 (uint16_t *)&data->addr,
1434 data->port);
1436 ip->src_addr = data->addr;
1437 tcp->src_port = data->port;
1445 (uint16_t *)&data->addr,
1447 data->port);
1449 ip->src_addr = data->addr;
1450 udp->src_port = data->port;
1460 (uint16_t *)&data->addr,
1462 data->port);
1464 ip->dst_addr = data->addr;
1465 tcp->dst_port = data->port;
1473 (uint16_t *)&data->addr,
1475 data->port);
1477 ip->dst_addr = data->addr;
1478 udp->dst_port = data->port;
1500 #define TTL_INIT(data, decrement) \
1501 ((data)->n_packets = (decrement) ? 1 : 0)
1503 #define TTL_DEC_GET(data) \
1504 ((uint8_t)((data)->n_packets & 1))
1506 #define TTL_STATS_RESET(data) \
1507 ((data)->n_packets = ((data)->n_packets & 1))
1509 #define TTL_STATS_READ(data) \
1510 ((data)->n_packets >> 1)
1512 #define TTL_STATS_ADD(data, value) \
1513 ((data)->n_packets = \
1514 (((((data)->n_packets >> 1) + (value)) << 1) | \
1515 ((data)->n_packets & 1)))
1518 ttl_apply(void *data,
1521 struct ttl_data *d = data;
1530 struct ttl_data *data)
1535 uint8_t ttl_diff = TTL_DEC_GET(data);
1544 TTL_STATS_ADD(data, drop);
1551 struct ttl_data *data)
1555 uint8_t ttl_diff = TTL_DEC_GET(data);
1562 TTL_STATS_ADD(data, drop);
1585 stats_apply(struct stats_data *data,
1588 data->n_packets = p->n_packets;
1589 data->n_bytes = p->n_bytes;
1595 pkt_work_stats(struct stats_data *data,
1598 data->n_packets++;
1599 data->n_bytes += total_length;
1610 time_apply(struct time_data *data,
1613 data->time = p->time;
1618 pkt_work_time(struct time_data *data,
1621 data->time = time;
1699 /** Offset from start of IP header to the data. */
1717 /** Private data size to store cipher iv / aad. */
1765 sym_crypto_apply(struct sym_crypto_data *data,
1776 memset(data, 0, sizeof(*data));
1792 data->block_size = (uint16_t)ret;
1793 data->op_mask |= CRYPTO_OP_MASK_CIPHER;
1795 data->cipher_auth.cipher_iv_len =
1797 data->cipher_auth.cipher_iv_data_offset = (uint16_t)
1799 data->cipher_auth.cipher_iv_update_len = (uint16_t)
1802 rte_memcpy(data->iv_aad_data,
1806 data->direction = cipher_xform->op;
1813 data->op_mask |= CRYPTO_OP_MASK_AUTH;
1815 data->cipher_auth.auth_iv_len = auth_xform->iv.length;
1816 data->cipher_auth.auth_iv_data_offset = (uint16_t)
1818 data->cipher_auth.auth_iv_update_len = (uint16_t)
1820 data->digest_len = auth_xform->digest_length;
1822 data->direction = (auth_xform->op ==
1842 data->block_size = (uint16_t)ret;
1843 data->op_mask |= CRYPTO_OP_MASK_AEAD;
1845 data->digest_len = aead_xform->digest_length;
1846 data->aead.iv_len = aead_xform->iv.length;
1847 data->aead.aad_len = aead_xform->aad_length;
1849 data->aead.iv_data_offset = (uint16_t)
1851 data->aead.iv_update_len = (uint16_t)
1853 data->aead.aad_data_offset = (uint16_t)
1855 data->aead.aad_update_len = (uint16_t)
1858 rte_memcpy(data->iv_aad_data,
1862 rte_memcpy(data->iv_aad_data + p->aead.iv.length,
1866 data->direction = (aead_xform->op ==
1883 rte_memcpy(data->iv_aad_data + cipher_xform->iv.length,
1887 rte_memcpy(data->iv_aad_data,
1898 data->data_offset = (uint16_t)p->data_offset;
1899 data->session = session;
1905 pkt_work_sym_crypto(struct rte_mbuf *mbuf, struct sym_crypto_data *data,
1914 uint32_t payload_len = pkt_offset + mbuf->data_len - data->data_offset;
1922 sym->session = data->session;
1925 if (data->direction == RTE_CRYPTO_CIPHER_OP_ENCRYPT) {
1927 data->block_size) - payload_len;
1930 data->digest_len) == NULL))
1935 payload_len -= data->digest_len;
1937 if (data->op_mask & CRYPTO_OP_MASK_CIPHER) {
1941 sym->cipher.data.length = payload_len;
1942 sym->cipher.data.offset = data->data_offset - pkt_offset;
1944 if (data->cipher_auth.cipher_iv_update_len) {
1946 data->cipher_auth.cipher_iv_data_offset
1952 if (data->direction == RTE_CRYPTO_CIPHER_OP_ENCRYPT)
1953 rte_memcpy(pkt_iv, data->iv_aad_data,
1954 data->cipher_auth.cipher_iv_update_len);
1956 rte_memcpy(data->iv_aad_data, pkt_iv,
1957 data->cipher_auth.cipher_iv_update_len);
1961 rte_memcpy(iv, data->iv_aad_data,
1962 data->cipher_auth.cipher_iv_len);
1965 if (data->op_mask & CRYPTO_OP_MASK_AUTH) {
1967 sym->auth.data.offset = ip_offset - pkt_offset;
1968 sym->auth.data.length = mbuf->data_len - sym->auth.data.offset -
1969 data->digest_len;
1970 sym->auth.digest.data = rte_pktmbuf_mtod_offset(mbuf,
1972 data->digest_len);
1974 rte_pktmbuf_pkt_len(mbuf) - data->digest_len);
1976 if (data->cipher_auth.auth_iv_update_len) {
1978 data->cipher_auth.auth_iv_data_offset
1980 uint8_t *data_iv = data->iv_aad_data +
1981 data->cipher_auth.cipher_iv_len;
1983 if (data->direction == RTE_CRYPTO_CIPHER_OP_ENCRYPT)
1985 data->cipher_auth.auth_iv_update_len);
1988 data->cipher_auth.auth_iv_update_len);
1991 if (data->cipher_auth.auth_iv_len) {
1995 rte_memcpy(iv, data->iv_aad_data +
1996 data->cipher_auth.cipher_iv_len,
1997 data->cipher_auth.auth_iv_len);
2001 if (data->op_mask & CRYPTO_OP_MASK_AEAD) {
2005 sym->aead.aad.data = aad;
2008 sym->aead.digest.data = rte_pktmbuf_mtod_offset(mbuf,
2010 data->digest_len);
2012 rte_pktmbuf_pkt_len(mbuf) - data->digest_len);
2013 sym->aead.data.offset = data->data_offset - pkt_offset;
2014 sym->aead.data.length = payload_len;
2016 if (data->aead.iv_update_len) {
2018 data->aead.iv_data_offset + ip_offset);
2019 uint8_t *data_iv = data->iv_aad_data;
2021 if (data->direction == RTE_CRYPTO_CIPHER_OP_ENCRYPT)
2023 data->aead.iv_update_len);
2026 data->aead.iv_update_len);
2029 rte_memcpy(iv, data->iv_aad_data, data->aead.iv_len);
2031 if (data->aead.aad_update_len) {
2033 data->aead.aad_data_offset + ip_offset);
2034 uint8_t *data_aad = data->iv_aad_data +
2035 data->aead.iv_len;
2037 if (data->direction == RTE_CRYPTO_CIPHER_OP_ENCRYPT)
2039 data->aead.iv_update_len);
2042 data->aead.iv_update_len);
2045 rte_memcpy(aad, data->iv_aad_data + data->aead.iv_len,
2046 data->aead.aad_len);
2060 tag_apply(struct tag_data *data,
2063 data->tag = p->tag;
2069 struct tag_data *data)
2071 mbuf->hash.fdir.hi = data->tag;
2104 decap_apply(struct decap_data *data,
2107 data->n = p->n;
2113 struct decap_data *data)
2118 uint16_t n = data->n;
2361 struct ap_data data;
2456 action_data_offset_set(&profile->data, &profile->cfg);
2479 struct ap_data data;
2505 memcpy(&action->data, &profile->data, sizeof(profile->data));
2511 action_data_get(void *data,
2515 size_t offset = action->data.offset[type];
2516 uint8_t *data_bytes = data;
2523 void *data,
2531 (data == NULL) ||
2538 action_data = action_data_get(data, action, type);
2618 struct dscp_table_entry_data *data =
2626 data->color = entry->color;
2627 data->tc = entry->tc_id;
2628 data->tc_queue = entry->tc_queue_id;
2699 void *data,
2710 (data == NULL) ||
2714 mtr_data = action_data_get(data, action, RTE_TABLE_ACTION_MTR);
2761 void *data,
2771 (data == NULL))
2774 ttl_data = action_data_get(data, action, RTE_TABLE_ACTION_TTL);
2789 void *data,
2799 (data == NULL))
2802 stats_data = action_data_get(data, action,
2824 void *data,
2833 (data == NULL) ||
2837 time_data = action_data_get(data, action, RTE_TABLE_ACTION_TIME);
2847 void *data)
2855 (data == NULL))
2858 sym_crypto_data = action_data_get(data, action,
2893 void *data =
2897 data,
2901 void *data =
2905 data,
2914 void *data =
2918 data,
2924 void *data = action_data_get(table_entry,
2928 pkt_work_decap(mbuf, data);
2932 void *data =
2936 data,
2944 void *data =
2948 pkt_ipv4_work_nat(ip, data, &cfg->nat);
2950 pkt_ipv6_work_nat(ip, data, &cfg->nat);
2954 void *data =
2958 drop_mask |= pkt_ipv4_work_ttl(ip, data);
2960 drop_mask |= pkt_ipv6_work_ttl(ip, data);
2964 void *data =
2967 pkt_work_stats(data, total_length);
2971 void *data =
2974 pkt_work_time(data, time);
2978 void *data = action_data_get(table_entry, action,
2981 drop_mask |= pkt_work_sym_crypto(mbuf, data, &cfg->sym_crypto,
2986 void *data = action_data_get(table_entry,
2990 pkt_work_tag(mbuf, data);
3445 total_size = rte_align32pow2(action->data.total_size);