Lines Matching refs:attr

469 static int __parse_flow_nlattrs(const struct nlattr *attr,
478 nla_for_each_nested(nla, attr, rem) {
521 static int parse_flow_mask_nlattrs(const struct nlattr *attr,
525 return __parse_flow_nlattrs(attr, a, attrsp, log, true);
528 int parse_flow_nlattrs(const struct nlattr *attr, const struct nlattr *a[],
531 return __parse_flow_nlattrs(attr, a, attrsp, log, false);
585 static int vxlan_tun_opt_from_nlattr(const struct nlattr *attr,
597 nla_for_each_nested(a, attr, rem) {
668 static int ip_tun_from_nlattr(const struct nlattr *attr,
679 nla_for_each_nested(a, attr, rem) {
684 OVS_NLERR(log, "Tunnel attr %d out of range max %d",
691 OVS_NLERR(log, "Tunnel attr %d has unexpected len %d expected %d",
1295 int nsh_hdr_from_nlattr(const struct nlattr *attr,
1309 nla_for_each_nested(a, attr, rem) {
1349 int nsh_key_from_nlattr(const struct nlattr *attr,
1357 nla_for_each_nested(a, attr, rem) {
1389 static int nsh_key_put_from_nlattr(const struct nlattr *attr,
1404 nla_for_each_nested(a, attr, rem) {
1409 OVS_NLERR(log, "nsh attr %d is out of range max %d",
1418 "nsh attr %d has unexpected len %d expected %d",
1760 static void nlattr_set(struct nlattr *attr, u8 val,
1767 nla_for_each_nested(nla, attr, rem) {
1778 static void mask_set_nlattr(struct nlattr *attr, u8 val)
1780 nlattr_set(attr, val, ovs_key_lens);
1878 static size_t get_ufid_len(const struct nlattr *attr, bool log)
1882 if (!attr)
1885 len = nla_len(attr);
1888 nla_len(attr), MAX_UFID_LENGTH);
1895 /* Initializes 'flow->ufid', returning true if 'attr' contains a valid UFID,
1898 bool ovs_nla_get_ufid(struct sw_flow_id *sfid, const struct nlattr *attr,
1901 sfid->ufid_len = get_ufid_len(attr, log);
1903 memcpy(sfid->ufid, nla_data(attr), sfid->ufid_len);
1926 u32 ovs_nla_get_ufid_flags(const struct nlattr *attr)
1928 return attr ? nla_get_u32(attr) : 0;
2265 const struct sw_flow_key *output, int attr, bool is_mask,
2271 nla = nla_nest_start_noflag(skb, attr);
2545 static int __ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
2552 static int validate_and_copy_sample(struct net *net, const struct nlattr *attr,
2566 nla_for_each_nested(a, attr, rem) {
2620 const struct nlattr *attr,
2632 nla_for_each_nested(a, attr, rem) {
2679 const struct nlattr *attr,
2689 if (nla_len(attr) && nla_len(attr) < NLA_HDRLEN)
2696 exec = last || !actions_may_change_flow(attr);
2703 err = __ovs_nla_copy_actions(net, attr, key, sfa,
2760 static int validate_and_copy_set_tun(const struct nlattr *attr,
2774 opts_type = ip_tun_from_nlattr(nla_data(attr), &match, false, log);
2841 static bool validate_nsh(const struct nlattr *attr, bool is_mask,
2849 ret = nsh_key_put_from_nlattr(attr, &match, is_mask,
3040 static int validate_userspace(const struct nlattr *attr)
3050 error = nla_parse_nested_deprecated(a, OVS_USERSPACE_ATTR_MAX, attr,
3069 const struct nlattr *attr,
3083 nla_data(attr), nla_len(attr),
3161 static int __ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
3175 nla_for_each_nested(a, attr, rem) {
3498 int ovs_nla_copy_actions(struct net *net, const struct nlattr *attr,
3505 *sfa = nla_alloc_flow_actions(min(nla_len(attr), MAX_ACTIONS_BUFSIZE));
3512 (*sfa)->orig_len = nla_len(attr);
3513 err = __ovs_nla_copy_actions(net, attr, key, sfa, key->eth.type,
3522 static int sample_action_to_attr(const struct nlattr *attr,
3526 int err = 0, rem = nla_len(attr);
3534 sample_arg = nla_data(attr);
3563 static int clone_action_to_attr(const struct nlattr *attr,
3567 int err = 0, rem = nla_len(attr);
3574 attr = nla_next(nla_data(attr), &rem);
3575 err = ovs_nla_put_actions(attr, rem, skb);
3585 static int check_pkt_len_action_to_attr(const struct nlattr *attr,
3591 int err = 0, rem = nla_len(attr);
3597 /* The first nested attribute in 'attr' is always
3600 cpl_arg = nla_data(attr);
3608 /* Second nested attribute in 'attr' is always
3627 /* Third nested attribute in 'attr' is always
3654 static int dec_ttl_action_to_attr(const struct nlattr *attr,
3665 nla_for_each_attr(a, nla_data(attr), nla_len(attr), rem) {
3751 int ovs_nla_put_actions(const struct nlattr *attr, int len, struct sk_buff *skb)
3756 nla_for_each_attr(a, attr, len, rem) {