Lines Matching +refs:param +refs:id +refs:attrs

49 	unsigned long attrs;  member
1465 .attrs = 0,
1472 .attrs = SEG6_F_ATTR(SEG6_LOCAL_NH6),
1479 .attrs = SEG6_F_ATTR(SEG6_LOCAL_TABLE),
1485 .attrs = SEG6_F_ATTR(SEG6_LOCAL_OIF),
1491 .attrs = SEG6_F_ATTR(SEG6_LOCAL_NH6),
1497 .attrs = SEG6_F_ATTR(SEG6_LOCAL_NH4),
1503 .attrs = SEG6_F_ATTR(SEG6_LOCAL_VRFTABLE),
1515 .attrs = 0,
1523 .attrs = SEG6_F_ATTR(SEG6_LOCAL_TABLE),
1530 .attrs = SEG6_F_ATTR(SEG6_LOCAL_VRFTABLE),
1541 .attrs = SEG6_F_ATTR(SEG6_LOCAL_SRH),
1547 .attrs = SEG6_F_ATTR(SEG6_LOCAL_SRH),
1554 .attrs = SEG6_F_ATTR(SEG6_LOCAL_BPF),
1652 static int parse_nla_srh(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_srh() argument
1658 srh = nla_data(attrs[SEG6_LOCAL_SRH]); in parse_nla_srh()
1659 len = nla_len(attrs[SEG6_LOCAL_SRH]); in parse_nla_srh()
1710 static int parse_nla_table(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_table() argument
1713 slwt->table = nla_get_u32(attrs[SEG6_LOCAL_TABLE]); in parse_nla_table()
1744 static int parse_nla_vrftable(struct nlattr **attrs, in parse_nla_vrftable() argument
1753 info->vrf_table = nla_get_u32(attrs[SEG6_LOCAL_VRFTABLE]); in parse_nla_vrftable()
1782 static int parse_nla_nh4(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_nh4() argument
1785 memcpy(&slwt->nh4, nla_data(attrs[SEG6_LOCAL_NH4]), in parse_nla_nh4()
1809 static int parse_nla_nh6(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_nh6() argument
1812 memcpy(&slwt->nh6, nla_data(attrs[SEG6_LOCAL_NH6]), in parse_nla_nh6()
1836 static int parse_nla_iif(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_iif() argument
1839 slwt->iif = nla_get_u32(attrs[SEG6_LOCAL_IIF]); in parse_nla_iif()
1860 static int parse_nla_oif(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_oif() argument
1863 slwt->oif = nla_get_u32(attrs[SEG6_LOCAL_OIF]); in parse_nla_oif()
1891 static int parse_nla_bpf(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_bpf() argument
1900 attrs[SEG6_LOCAL_BPF], in parse_nla_bpf()
1934 if (nla_put_u32(skb, SEG6_LOCAL_BPF_PROG, slwt->bpf.prog->aux->id)) in put_nla_bpf()
1969 static int parse_nla_counters(struct nlattr **attrs, in parse_nla_counters() argument
1978 attrs[SEG6_LOCAL_COUNTERS], in parse_nla_counters()
2129 static int parse_nla_flavors(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_flavors() argument
2139 attrs[SEG6_LOCAL_FLAVORS], in parse_nla_flavors()
2258 int (*parse)(struct nlattr **attrs, struct seg6_local_lwt *slwt,
2322 struct seg6_action_param *param; in __destroy_attrs() local
2338 param = &seg6_action_params[i]; in __destroy_attrs()
2340 if (param->destroy) in __destroy_attrs()
2341 param->destroy(slwt); in __destroy_attrs()
2350 unsigned long attrs = slwt->desc->attrs | slwt->parsed_optattrs; in destroy_attrs() local
2352 __destroy_attrs(attrs, SEG6_LOCAL_MAX + 1, slwt); in destroy_attrs()
2355 static int parse_nla_optional_attrs(struct nlattr **attrs, in parse_nla_optional_attrs() argument
2361 struct seg6_action_param *param; in parse_nla_optional_attrs() local
2365 if (!(desc->optattrs & SEG6_F_ATTR(i)) || !attrs[i]) in parse_nla_optional_attrs()
2371 param = &seg6_action_params[i]; in parse_nla_optional_attrs()
2373 err = param->parse(attrs, slwt, extack); in parse_nla_optional_attrs()
2426 static int parse_nla_action(struct nlattr **attrs, struct seg6_local_lwt *slwt, in parse_nla_action() argument
2429 struct seg6_action_param *param; in parse_nla_action() local
2456 invalid_attrs = desc->attrs & desc->optattrs; in parse_nla_action()
2465 if (desc->attrs & SEG6_F_ATTR(i)) { in parse_nla_action()
2466 if (!attrs[i]) in parse_nla_action()
2469 param = &seg6_action_params[i]; in parse_nla_action()
2471 err = param->parse(attrs, slwt, extack); in parse_nla_action()
2478 err = parse_nla_optional_attrs(attrs, slwt, extack); in parse_nla_action()
2488 __destroy_attrs(desc->attrs, i, slwt); in parse_nla_action()
2560 struct seg6_action_param *param; in seg6_local_fill_encap() local
2561 unsigned long attrs; in seg6_local_fill_encap() local
2567 attrs = slwt->desc->attrs | slwt->parsed_optattrs; in seg6_local_fill_encap()
2570 if (attrs & SEG6_F_ATTR(i)) { in seg6_local_fill_encap()
2571 param = &seg6_action_params[i]; in seg6_local_fill_encap()
2572 err = param->put(skb, slwt); in seg6_local_fill_encap()
2584 unsigned long attrs; in seg6_local_get_encap_size() local
2589 attrs = slwt->desc->attrs | slwt->parsed_optattrs; in seg6_local_get_encap_size()
2591 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_SRH)) in seg6_local_get_encap_size()
2594 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_TABLE)) in seg6_local_get_encap_size()
2597 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_NH4)) in seg6_local_get_encap_size()
2600 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_NH6)) in seg6_local_get_encap_size()
2603 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_IIF)) in seg6_local_get_encap_size()
2606 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_OIF)) in seg6_local_get_encap_size()
2609 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_BPF)) in seg6_local_get_encap_size()
2614 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_VRFTABLE)) in seg6_local_get_encap_size()
2617 if (attrs & SEG6_F_LOCAL_COUNTERS) in seg6_local_get_encap_size()
2626 if (attrs & SEG6_F_ATTR(SEG6_LOCAL_FLAVORS)) in seg6_local_get_encap_size()
2636 struct seg6_action_param *param; in seg6_local_cmp_encap() local
2646 attrs_a = slwt_a->desc->attrs | slwt_a->parsed_optattrs; in seg6_local_cmp_encap()
2647 attrs_b = slwt_b->desc->attrs | slwt_b->parsed_optattrs; in seg6_local_cmp_encap()
2654 param = &seg6_action_params[i]; in seg6_local_cmp_encap()
2655 if (param->cmp(slwt_a, slwt_b)) in seg6_local_cmp_encap()