Lines Matching refs:ct_info
107 static void __ovs_ct_free_action(struct ovs_conntrack_info *ct_info);
1384 struct ovs_conntrack_info ct_info; in ovs_ct_copy_action() local
1395 memset(&ct_info, 0, sizeof(ct_info)); in ovs_ct_copy_action()
1396 ct_info.family = family; in ovs_ct_copy_action()
1398 nf_ct_zone_init(&ct_info.zone, NF_CT_DEFAULT_ZONE_ID, in ovs_ct_copy_action()
1401 err = parse_ct(attr, &ct_info, &helper, log); in ovs_ct_copy_action()
1406 ct_info.ct = nf_ct_tmpl_alloc(net, &ct_info.zone, GFP_KERNEL); in ovs_ct_copy_action()
1407 if (!ct_info.ct) { in ovs_ct_copy_action()
1412 if (ct_info.timeout[0]) { in ovs_ct_copy_action()
1413 if (nf_ct_set_timeout(net, ct_info.ct, family, key->ip.proto, in ovs_ct_copy_action()
1414 ct_info.timeout)) in ovs_ct_copy_action()
1417 ct_info.timeout); in ovs_ct_copy_action()
1419 ct_info.nf_ct_timeout = rcu_dereference( in ovs_ct_copy_action()
1420 nf_ct_timeout_find(ct_info.ct)->timeout); in ovs_ct_copy_action()
1425 err = nf_ct_add_helper(ct_info.ct, helper, ct_info.family, in ovs_ct_copy_action()
1426 key->ip.proto, ct_info.nat, &ct_info.helper); in ovs_ct_copy_action()
1433 err = ovs_nla_add_action(sfa, OVS_ACTION_ATTR_CT, &ct_info, in ovs_ct_copy_action()
1434 sizeof(ct_info), log); in ovs_ct_copy_action()
1438 if (ct_info.commit) in ovs_ct_copy_action()
1439 __set_bit(IPS_CONFIRMED_BIT, &ct_info.ct->status); in ovs_ct_copy_action()
1442 __ovs_ct_free_action(&ct_info); in ovs_ct_copy_action()
1514 int ovs_ct_action_to_attr(const struct ovs_conntrack_info *ct_info, in ovs_ct_action_to_attr() argument
1523 if (ct_info->commit && nla_put_flag(skb, ct_info->force in ovs_ct_action_to_attr()
1528 nla_put_u16(skb, OVS_CT_ATTR_ZONE, ct_info->zone.id)) in ovs_ct_action_to_attr()
1530 if (IS_ENABLED(CONFIG_NF_CONNTRACK_MARK) && ct_info->mark.mask && in ovs_ct_action_to_attr()
1531 nla_put(skb, OVS_CT_ATTR_MARK, sizeof(ct_info->mark), in ovs_ct_action_to_attr()
1532 &ct_info->mark)) in ovs_ct_action_to_attr()
1535 labels_nonzero(&ct_info->labels.mask) && in ovs_ct_action_to_attr()
1536 nla_put(skb, OVS_CT_ATTR_LABELS, sizeof(ct_info->labels), in ovs_ct_action_to_attr()
1537 &ct_info->labels)) in ovs_ct_action_to_attr()
1539 if (ct_info->helper) { in ovs_ct_action_to_attr()
1541 ct_info->helper->name)) in ovs_ct_action_to_attr()
1544 if (ct_info->have_eventmask && in ovs_ct_action_to_attr()
1545 nla_put_u32(skb, OVS_CT_ATTR_EVENTMASK, ct_info->eventmask)) in ovs_ct_action_to_attr()
1547 if (ct_info->timeout[0]) { in ovs_ct_action_to_attr()
1548 if (nla_put_string(skb, OVS_CT_ATTR_TIMEOUT, ct_info->timeout)) in ovs_ct_action_to_attr()
1553 if (ct_info->nat && !ovs_ct_nat_to_attr(ct_info, skb)) in ovs_ct_action_to_attr()
1563 struct ovs_conntrack_info *ct_info = nla_data(a); in ovs_ct_free_action() local
1565 __ovs_ct_free_action(ct_info); in ovs_ct_free_action()
1568 static void __ovs_ct_free_action(struct ovs_conntrack_info *ct_info) in __ovs_ct_free_action() argument
1570 if (ct_info->helper) { in __ovs_ct_free_action()
1572 if (ct_info->nat) in __ovs_ct_free_action()
1573 nf_nat_helper_put(ct_info->helper); in __ovs_ct_free_action()
1575 nf_conntrack_helper_put(ct_info->helper); in __ovs_ct_free_action()
1577 if (ct_info->ct) { in __ovs_ct_free_action()
1578 if (ct_info->timeout[0]) in __ovs_ct_free_action()
1579 nf_ct_destroy_timeout(ct_info->ct); in __ovs_ct_free_action()
1580 nf_ct_tmpl_free(ct_info->ct); in __ovs_ct_free_action()