Lines Matching refs:pattern
8 npc_parse_skip_void_and_any_items(const struct roc_npc_item_info *pattern) in npc_parse_skip_void_and_any_items() argument
10 while ((pattern->type == ROC_NPC_ITEM_TYPE_VOID) || in npc_parse_skip_void_and_any_items()
11 (pattern->type == ROC_NPC_ITEM_TYPE_ANY)) in npc_parse_skip_void_and_any_items()
12 pattern++; in npc_parse_skip_void_and_any_items()
14 return pattern; in npc_parse_skip_void_and_any_items()
27 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_MARK) { in npc_parse_mark_item()
32 pst->pattern++; in npc_parse_mark_item()
48 memcpy(spec_buf + raw_spec->offset, raw_spec->pattern, in npc_flow_raw_item_prepare()
51 if (raw_mask && raw_mask->pattern) { in npc_flow_raw_item_prepare()
52 memcpy(mask_buf + raw_spec->offset, raw_mask->pattern, in npc_flow_raw_item_prepare()
79 if (pst->pattern->type != ROC_NPC_ITEM_TYPE_RAW) in npc_parse_pre_l2()
86 raw_spec = pst->pattern->spec; in npc_parse_pre_l2()
96 (const struct roc_npc_flow_item_raw *)pst->pattern->spec, in npc_parse_pre_l2()
97 (const struct roc_npc_flow_item_raw *)pst->pattern->mask, &info, in npc_parse_pre_l2()
104 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_pre_l2()
121 if (pst->pattern->type != ROC_NPC_ITEM_TYPE_CPT_HDR) in npc_parse_cpt_hdr()
131 info.len = pst->pattern->size; in npc_parse_cpt_hdr()
137 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_cpt_hdr()
154 if (pst->pattern->type != ROC_NPC_ITEM_TYPE_HIGIG2) in npc_parse_higig2_hdr()
169 info.len = pst->pattern->size; in npc_parse_higig2_hdr()
175 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_higig2_hdr()
193 if (pst->pattern->type != ROC_NPC_ITEM_TYPE_ETH) in npc_parse_la()
196 eth_item = pst->pattern->spec; in npc_parse_la()
225 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_la()
245 const struct roc_npc_item_info *pattern = pst->pattern; in npc_parse_lb() local
264 last_pattern = pattern; in npc_parse_lb()
266 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_VLAN) { in npc_parse_lb()
275 pattern = pst->pattern; in npc_parse_lb()
276 while (pattern->type == ROC_NPC_ITEM_TYPE_VLAN) { in npc_parse_lb()
280 vlan_item[nr_vlans] = pattern->spec; in npc_parse_lb()
285 rc = npc_parse_item_basic(pattern, &info); in npc_parse_lb()
289 last_pattern = pattern; in npc_parse_lb()
290 pattern++; in npc_parse_lb()
291 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_parse_lb()
332 } else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_E_TAG) { in npc_parse_lb()
339 last_pattern = pst->pattern; in npc_parse_lb()
340 pattern = npc_parse_skip_void_and_any_items(pst->pattern + 1); in npc_parse_lb()
341 if (pattern->type == ROC_NPC_ITEM_TYPE_VLAN) { in npc_parse_lb()
344 info.len = pattern->size; in npc_parse_lb()
345 rc = npc_parse_item_basic(pattern, &info); in npc_parse_lb()
350 last_pattern = pattern; in npc_parse_lb()
352 info.len = pattern->size; in npc_parse_lb()
353 } else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_QINQ) { in npc_parse_lb()
355 info.len = pattern->size; in npc_parse_lb()
358 } else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_RAW) { in npc_parse_lb()
359 raw_spec = pst->pattern->spec; in npc_parse_lb()
376 pst->pattern->spec, in npc_parse_lb()
378 pst->pattern->mask, in npc_parse_lb()
389 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_lb()
394 pst->pattern = last_pattern; in npc_parse_lb()
403 const struct roc_npc_item_info *pattern = pst->pattern; in npc_parse_mpls_label_stack() local
414 info.len = pattern->size; in npc_parse_mpls_label_stack()
419 while (pattern->type == ROC_NPC_ITEM_TYPE_MPLS) { in npc_parse_mpls_label_stack()
424 rc = npc_parse_item_basic(pattern, &info); in npc_parse_mpls_label_stack()
428 pst->last_pattern = pattern; in npc_parse_mpls_label_stack()
429 pattern++; in npc_parse_mpls_label_stack()
430 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_parse_mpls_label_stack()
460 info.len = pst->pattern->size; in npc_parse_mpls()
467 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_mpls()
480 pst->pattern = pst->last_pattern; in npc_parse_mpls()
488 const struct roc_npc_item_info *pattern = pst->pattern + 1; in npc_check_lc_ip_tunnel() local
490 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_check_lc_ip_tunnel()
491 if (pattern->type == ROC_NPC_ITEM_TYPE_MPLS || in npc_check_lc_ip_tunnel()
492 pattern->type == ROC_NPC_ITEM_TYPE_IPV4 || in npc_check_lc_ip_tunnel()
493 pattern->type == ROC_NPC_ITEM_TYPE_IPV6) in npc_check_lc_ip_tunnel()
561 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_MPLS) in npc_parse_lc()
571 switch (pst->pattern->type) { in npc_parse_lc()
574 info.len = pst->pattern->size; in npc_parse_lc()
577 ipv6_spec = pst->pattern->spec; in npc_parse_lc()
589 info.len = pst->pattern->size; in npc_parse_lc()
594 info.len = pst->pattern->size; in npc_parse_lc()
601 info.len = pst->pattern->size; in npc_parse_lc()
606 info.len = pst->pattern->size; in npc_parse_lc()
609 raw_spec = pst->pattern->spec; in npc_parse_lc()
618 pst->pattern->spec, in npc_parse_lc()
620 pst->pattern->mask, in npc_parse_lc()
637 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_lc()
661 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_MPLS) in npc_parse_ld()
675 switch (pst->pattern->type) { in npc_parse_ld()
681 info.len = pst->pattern->size; in npc_parse_ld()
685 info.len = pst->pattern->size; in npc_parse_ld()
689 info.len = pst->pattern->size; in npc_parse_ld()
693 info.len = pst->pattern->size; in npc_parse_ld()
697 info.len = pst->pattern->size; in npc_parse_ld()
701 info.len = pst->pattern->size; in npc_parse_ld()
705 info.len = pst->pattern->size; in npc_parse_ld()
711 info.len = pst->pattern->size; in npc_parse_ld()
720 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_ld()
730 const struct roc_npc_item_info *pattern = pst->pattern; in npc_parse_le() local
739 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_MPLS) in npc_parse_le()
752 rc = npc_parse_item_basic(pattern, &info); in npc_parse_le()
757 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_parse_le()
758 switch (pattern->type) { in npc_parse_le()
761 info.len = pattern->size; in npc_parse_le()
766 info.len = pattern->size; in npc_parse_le()
771 info.len = pattern->size; in npc_parse_le()
776 info.len = pattern->size; in npc_parse_le()
781 info.len = pattern->size; in npc_parse_le()
786 info.len = pst->pattern->size; in npc_parse_le()
795 rc = npc_parse_item_basic(pattern, &info); in npc_parse_le()
805 const struct roc_npc_item_info *pattern, *last_pattern; in npc_parse_lf() local
816 if (pst->pattern->type != ROC_NPC_ITEM_TYPE_ETH) in npc_parse_lf()
826 info.len = pst->pattern->size; in npc_parse_lf()
834 last_pattern = pst->pattern; in npc_parse_lf()
835 pattern = pst->pattern + 1; in npc_parse_lf()
836 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_parse_lf()
837 while (pattern->type == ROC_NPC_ITEM_TYPE_VLAN) { in npc_parse_lf()
839 last_pattern = pattern; in npc_parse_lf()
840 pattern++; in npc_parse_lf()
841 pattern = npc_parse_skip_void_and_any_items(pattern); in npc_parse_lf()
857 info.len = pst->pattern->size; in npc_parse_lf()
863 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_lf()
867 pst->pattern = last_pattern; in npc_parse_lf()
890 if (pst->pattern->type == ROC_NPC_ITEM_TYPE_IPV4) { in npc_parse_lg()
892 info.len = pst->pattern->size; in npc_parse_lg()
893 } else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_IPV6) { in npc_parse_lg()
895 info.len = pst->pattern->size; in npc_parse_lg()
902 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_lg()
927 switch (pst->pattern->type) { in npc_parse_lh()
930 info.len = pst->pattern->size; in npc_parse_lh()
934 info.len = pst->pattern->size; in npc_parse_lh()
938 info.len = pst->pattern->size; in npc_parse_lh()
942 info.len = pst->pattern->size; in npc_parse_lh()
949 rc = npc_parse_item_basic(pst->pattern, &info); in npc_parse_lh()