Lines Matching refs:attr
464 static int __parse_flow_nlattrs(const struct nlattr *attr,
473 nla_for_each_nested(nla, attr, rem) {
509 static int parse_flow_mask_nlattrs(const struct nlattr *attr,
513 return __parse_flow_nlattrs(attr, a, attrsp, log, true);
516 int parse_flow_nlattrs(const struct nlattr *attr, const struct nlattr *a[],
519 return __parse_flow_nlattrs(attr, a, attrsp, log, false);
573 static int vxlan_tun_opt_from_nlattr(const struct nlattr *attr,
585 nla_for_each_nested(a, attr, rem) {
656 static int ip_tun_from_nlattr(const struct nlattr *attr,
667 nla_for_each_nested(a, attr, rem) {
672 OVS_NLERR(log, "Tunnel attr %d out of range max %d",
679 OVS_NLERR(log, "Tunnel attr %d has unexpected len %d expected %d",
1283 int nsh_hdr_from_nlattr(const struct nlattr *attr,
1297 nla_for_each_nested(a, attr, rem) {
1337 int nsh_key_from_nlattr(const struct nlattr *attr,
1345 nla_for_each_nested(a, attr, rem) {
1377 static int nsh_key_put_from_nlattr(const struct nlattr *attr,
1392 nla_for_each_nested(a, attr, rem) {
1397 OVS_NLERR(log, "nsh attr %d is out of range max %d",
1406 "nsh attr %d has unexpected len %d expected %d",
1737 static void nlattr_set(struct nlattr *attr, u8 val,
1744 nla_for_each_nested(nla, attr, rem) {
1755 static void mask_set_nlattr(struct nlattr *attr, u8 val)
1757 nlattr_set(attr, val, ovs_key_lens);
1855 static size_t get_ufid_len(const struct nlattr *attr, bool log)
1859 if (!attr)
1862 len = nla_len(attr);
1865 nla_len(attr), MAX_UFID_LENGTH);
1872 /* Initializes 'flow->ufid', returning true if 'attr' contains a valid UFID,
1875 bool ovs_nla_get_ufid(struct sw_flow_id *sfid, const struct nlattr *attr,
1878 sfid->ufid_len = get_ufid_len(attr, log);
1880 memcpy(sfid->ufid, nla_data(attr), sfid->ufid_len);
1903 u32 ovs_nla_get_ufid_flags(const struct nlattr *attr)
1905 return attr ? nla_get_u32(attr) : 0;
2234 const struct sw_flow_key *output, int attr, bool is_mask,
2240 nla = nla_nest_start_noflag(skb, attr);
2514 static int __ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
2521 static int validate_and_copy_sample(struct net *net, const struct nlattr *attr,
2535 nla_for_each_nested(a, attr, rem) {
2589 const struct nlattr *attr,
2601 nla_for_each_nested(a, attr, rem) {
2638 const struct nlattr *attr,
2648 if (nla_len(attr) && nla_len(attr) < NLA_HDRLEN)
2655 exec = last || !actions_may_change_flow(attr);
2662 err = __ovs_nla_copy_actions(net, attr, key, sfa,
2719 static int validate_and_copy_set_tun(const struct nlattr *attr,
2733 opts_type = ip_tun_from_nlattr(nla_data(attr), &match, false, log);
2800 static bool validate_nsh(const struct nlattr *attr, bool is_mask,
2808 ret = nsh_key_put_from_nlattr(attr, &match, is_mask,
2999 static int validate_userspace(const struct nlattr *attr)
3009 error = nla_parse_nested_deprecated(a, OVS_USERSPACE_ATTR_MAX, attr,
3028 const struct nlattr *attr,
3042 nla_data(attr), nla_len(attr),
3120 static int __ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
3134 nla_for_each_nested(a, attr, rem) {
3449 int ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
3456 *sfa = nla_alloc_flow_actions(min(nla_len(attr), MAX_ACTIONS_BUFSIZE));
3463 (*sfa)->orig_len = nla_len(attr);
3464 err = __ovs_nla_copy_actions(net, attr, key, sfa, key->eth.type,
3473 static int sample_action_to_attr(const struct nlattr *attr,
3477 int err = 0, rem = nla_len(attr);
3485 sample_arg = nla_data(attr);
3514 static int clone_action_to_attr(const struct nlattr *attr,
3518 int err = 0, rem = nla_len(attr);
3525 attr = nla_next(nla_data(attr), &rem);
3526 err = ovs_nla_put_actions(attr, rem, skb);
3536 static int check_pkt_len_action_to_attr(const struct nlattr *attr,
3542 int err = 0, rem = nla_len(attr);
3548 /* The first nested attribute in 'attr' is always
3551 cpl_arg = nla_data(attr);
3559 /* Second nested attribute in 'attr' is always
3578 /* Third nested attribute in 'attr' is always
3605 static int dec_ttl_action_to_attr(const struct nlattr *attr,
3616 nla_for_each_attr(a, nla_data(attr), nla_len(attr), rem) {
3702 int ovs_nla_put_actions(const struct nlattr *attr, int len, struct sk_buff *skb)
3707 nla_for_each_attr(a, attr, len, rem) {