Lines Matching defs:sfa

2311 	struct sw_flow_actions *sfa;
2315 sfa = kmalloc(kmalloc_size_roundup(sizeof(*sfa) + size), GFP_KERNEL);
2316 if (!sfa)
2319 sfa->actions_len = 0;
2320 return sfa;
2455 static struct nlattr *reserve_sfa_size(struct sw_flow_actions **sfa,
2463 (*sfa)->actions_len;
2465 if (req_size <= (ksize(*sfa) - next_offset))
2468 new_acts_size = max(next_offset + req_size, ksize(*sfa) * 2);
2483 memcpy(acts->actions, (*sfa)->actions, (*sfa)->actions_len);
2484 acts->actions_len = (*sfa)->actions_len;
2485 acts->orig_len = (*sfa)->orig_len;
2486 kfree(*sfa);
2487 *sfa = acts;
2490 (*sfa)->actions_len += req_size;
2491 return (struct nlattr *) ((unsigned char *)(*sfa) + next_offset);
2494 static struct nlattr *__add_action(struct sw_flow_actions **sfa,
2499 a = reserve_sfa_size(sfa, nla_attr_size(len), log);
2513 int ovs_nla_add_action(struct sw_flow_actions **sfa, int attrtype, void *data,
2518 a = __add_action(sfa, attrtype, data, len, log);
2523 static inline int add_nested_action_start(struct sw_flow_actions **sfa,
2526 int used = (*sfa)->actions_len;
2529 err = ovs_nla_add_action(sfa, attrtype, NULL, 0, log);
2536 static inline void add_nested_action_end(struct sw_flow_actions *sfa,
2539 struct nlattr *a = (struct nlattr *) ((unsigned char *)sfa->actions +
2542 a->nla_len = sfa->actions_len - st_offset;
2547 struct sw_flow_actions **sfa,
2554 struct sw_flow_actions **sfa,
2584 start = add_nested_action_start(sfa, OVS_ACTION_ATTR_SAMPLE, log);
2602 err = ovs_nla_add_action(sfa, OVS_SAMPLE_ATTR_ARG, &arg, sizeof(arg),
2607 err = __ovs_nla_copy_actions(net, actions, key, sfa,
2614 add_nested_action_end(*sfa, start);
2622 struct sw_flow_actions **sfa,
2659 start = add_nested_action_start(sfa, OVS_ACTION_ATTR_DEC_TTL, log);
2663 action_start = add_nested_action_start(sfa, OVS_DEC_TTL_ATTR_ACTION, log);
2667 err = __ovs_nla_copy_actions(net, actions, key, sfa, eth_type,
2673 add_nested_action_end(*sfa, action_start);
2674 add_nested_action_end(*sfa, start);
2681 struct sw_flow_actions **sfa,
2692 start = add_nested_action_start(sfa, OVS_ACTION_ATTR_CLONE, log);
2698 err = ovs_nla_add_action(sfa, OVS_CLONE_ATTR_EXEC, &exec,
2703 err = __ovs_nla_copy_actions(net, attr, key, sfa,
2709 add_nested_action_end(*sfa, start);
2761 struct sw_flow_actions **sfa, bool log)
2795 start = add_nested_action_start(sfa, OVS_ACTION_ATTR_SET, log);
2811 a = __add_action(sfa, OVS_KEY_ATTR_TUNNEL_INFO, NULL,
2836 add_nested_action_end(*sfa, start);
2870 struct sw_flow_actions **sfa, bool *skip_copy,
2911 err = validate_and_copy_set_tun(a, sfa, log);
3016 start = add_nested_action_start(sfa,
3022 at = __add_action(sfa, key_type, NULL, len, log);
3034 add_nested_action_end(*sfa, start);
3071 struct sw_flow_actions **sfa,
3100 start = add_nested_action_start(sfa, OVS_ACTION_ATTR_CHECK_PKT_LEN,
3111 err = ovs_nla_add_action(sfa, OVS_CHECK_PKT_LEN_ATTR_ARG, &arg,
3116 nested_acts_start = add_nested_action_start(sfa,
3121 err = __ovs_nla_copy_actions(net, acts_if_lesser_eq, key, sfa,
3128 add_nested_action_end(*sfa, nested_acts_start);
3130 nested_acts_start = add_nested_action_start(sfa,
3135 err = __ovs_nla_copy_actions(net, acts_if_greater, key, sfa,
3142 add_nested_action_end(*sfa, nested_acts_start);
3143 add_nested_action_end(*sfa, start);
3148 struct sw_flow_actions **sfa, bool log)
3153 to = reserve_sfa_size(sfa, from->nla_len, log);
3163 struct sw_flow_actions **sfa,
3351 err = validate_set(a, key, sfa,
3359 err = validate_set(a, key, sfa,
3369 err = validate_and_copy_sample(net, a, key, sfa,
3380 err = ovs_ct_copy_action(net, a, key, sfa, log);
3440 err = validate_and_copy_clone(net, a, key, sfa,
3453 err = validate_and_copy_check_pkt_len(net, a, key, sfa,
3466 err = validate_and_copy_dec_ttl(net, a, key, sfa,
3485 err = copy_action(a, sfa, log);
3500 struct sw_flow_actions **sfa, bool log)
3505 *sfa = nla_alloc_flow_actions(min(nla_len(attr), MAX_ACTIONS_BUFSIZE));
3506 if (IS_ERR(*sfa))
3507 return PTR_ERR(*sfa);
3512 (*sfa)->orig_len = nla_len(attr);
3513 err = __ovs_nla_copy_actions(net, attr, key, sfa, key->eth.type,
3517 ovs_nla_free_flow_actions(*sfa);