Lines Matching refs:parser
61 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser);
83 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_vxlan() argument
103 rte_memcpy(&parser->key[0], in ipn3ke_pattern_vxlan()
111 rte_memcpy(&parser->key[6], vxlan->vni, 3); in ipn3ke_pattern_vxlan()
125 parser->key_len = 48 + 24; in ipn3ke_pattern_vxlan()
148 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_mac() argument
167 rte_memcpy(parser->key, in ipn3ke_pattern_mac()
183 parser->key_len = 48; in ipn3ke_pattern_mac()
208 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_qinq() argument
231 parser->key[0] = (tci & 0xff0) >> 4; in ipn3ke_pattern_qinq()
232 parser->key[1] |= (tci & 0x00f) << 4; in ipn3ke_pattern_qinq()
237 parser->key[1] |= (tci & 0xf00) >> 8; in ipn3ke_pattern_qinq()
238 parser->key[2] = (tci & 0x0ff); in ipn3ke_pattern_qinq()
253 parser->key_len = 12 + 12; in ipn3ke_pattern_qinq()
278 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_mpls() argument
299 parser->key[0] = mpls1->label_tc_s[0]; in ipn3ke_pattern_mpls()
300 parser->key[1] = mpls1->label_tc_s[1]; in ipn3ke_pattern_mpls()
301 parser->key[2] = mpls1->label_tc_s[2] & 0xf0; in ipn3ke_pattern_mpls()
305 parser->key[2] |= in ipn3ke_pattern_mpls()
307 parser->key[3] = in ipn3ke_pattern_mpls()
310 parser->key[4] = in ipn3ke_pattern_mpls()
327 parser->key_len = 20 + 20; in ipn3ke_pattern_mpls()
352 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_ip_tcp() argument
372 rte_memcpy(&parser->key[0], &ipv4->hdr.src_addr, 4); in ipn3ke_pattern_ip_tcp()
378 rte_memcpy(&parser->key[4], &tcp->hdr.src_port, 2); in ipn3ke_pattern_ip_tcp()
392 parser->key_len = 32 + 16; in ipn3ke_pattern_ip_tcp()
417 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_ip_udp() argument
437 rte_memcpy(&parser->key[0], &ipv4->hdr.src_addr, 4); in ipn3ke_pattern_ip_udp()
443 rte_memcpy(&parser->key[4], &udp->hdr.src_port, 2); in ipn3ke_pattern_ip_udp()
457 parser->key_len = 32 + 16; in ipn3ke_pattern_ip_udp()
484 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_ip_nvgre() argument
505 rte_memcpy(&parser->key[0], &ipv4->hdr.src_addr, 4); in ipn3ke_pattern_ip_nvgre()
511 rte_memcpy(&parser->key[4], &udp->hdr.src_port, 2); in ipn3ke_pattern_ip_nvgre()
517 rte_memcpy(&parser->key[6], nvgre->tni, 3); in ipn3ke_pattern_ip_nvgre()
531 parser->key_len = 32 + 16 + 24; in ipn3ke_pattern_ip_nvgre()
558 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_pattern_vxlan_ip_udp() argument
579 rte_memcpy(&parser->key[0], vxlan->vni, 3); in ipn3ke_pattern_vxlan_ip_udp()
585 rte_memcpy(&parser->key[3], &ipv4->hdr.src_addr, 4); in ipn3ke_pattern_vxlan_ip_udp()
591 rte_memcpy(&parser->key[7], &udp->hdr.src_port, 2); in ipn3ke_pattern_vxlan_ip_udp()
605 parser->key_len = 24 + 32 + 16; in ipn3ke_pattern_vxlan_ip_udp()
722 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_flow_convert_actions() argument
767 parser->mark = 1; in ipn3ke_flow_convert_actions()
768 parser->mark_id = mark->id; in ipn3ke_flow_convert_actions()
772 parser->drop = 1; in ipn3ke_flow_convert_actions()
785 if (!parser->drop && !parser->mark) { in ipn3ke_flow_convert_actions()
834 struct rte_flow_error *error, struct ipn3ke_flow_parse *parser) in ipn3ke_flow_convert_items() argument
859 parser->key_type = idx; in ipn3ke_flow_convert_items()
861 return filter(items, error, parser); in ipn3ke_flow_convert_items()
914 ipn3ke_flow_key_generation(struct ipn3ke_flow_parse *parser, in ipn3ke_flow_key_generation() argument
924 parser->key_type, in ipn3ke_flow_key_generation()
935 len_in_bytes = BITS_TO_BYTES(parser->key_len); in ipn3ke_flow_key_generation()
938 parser->key_len); in ipn3ke_flow_key_generation()
941 key = (key << 8) | parser->key[i]; in ipn3ke_flow_key_generation()
956 rem_bits = parser->key_len % (sizeof(key) * BITS_PER_BYTE); in ipn3ke_flow_key_generation()
963 ipn3ke_flow_result_generation(struct ipn3ke_flow_parse *parser, in ipn3ke_flow_result_generation() argument
968 if (parser->drop) in ipn3ke_flow_result_generation()
979 parser->mark_id, in ipn3ke_flow_result_generation()
1120 struct ipn3ke_flow_parse *parser, struct rte_flow *flow) in ipn3ke_flow_convert_finalise() argument
1122 ipn3ke_flow_key_generation(parser, flow); in ipn3ke_flow_convert_finalise()
1123 ipn3ke_flow_result_generation(parser, flow); in ipn3ke_flow_convert_finalise()
1131 struct ipn3ke_flow_parse *parser) in ipn3ke_flow_convert() argument
1139 ret = ipn3ke_flow_convert_actions(actions, error, parser); in ipn3ke_flow_convert()
1143 ret = ipn3ke_flow_convert_items(items, error, parser); in ipn3ke_flow_convert()
1155 struct ipn3ke_flow_parse parser = {0}; in ipn3ke_flow_validate() local
1156 return ipn3ke_flow_convert(attr, pattern, actions, error, &parser); in ipn3ke_flow_validate()
1165 struct ipn3ke_flow_parse parser = {0}; in ipn3ke_flow_create() local
1178 ret = ipn3ke_flow_convert(attr, pattern, actions, error, &parser); in ipn3ke_flow_create()
1198 ipn3ke_flow_convert_finalise(hw, &parser, flow); in ipn3ke_flow_create()