Lines Matching defs:helper

35 	struct nf_conntrack_helper	helper;
45 struct nf_conntrack_helper *helper;
52 helper = rcu_dereference(help->helper);
53 if (helper == NULL)
56 /* This is a user-space helper not yet configured, skip. */
57 if ((helper->flags &
62 /* If the user-space helper is not available, don't block traffic. */
63 return NF_QUEUE_NR(helper->queue_num) | NF_VERDICT_FLAG_QUEUE_BYPASS;
99 const struct nf_conntrack_helper *helper;
104 helper = rcu_dereference(help->helper);
105 if (!helper || helper->data_len == 0)
116 const struct nf_conntrack_helper *helper;
118 helper = rcu_dereference(help->helper);
119 if (helper && helper->data_len &&
120 nla_put(skb, CTA_HELP_INFO, helper->data_len, &help->data))
172 nfnl_cthelper_parse_expect_policy(struct nf_conntrack_helper *helper,
211 helper->expect_class_max = class_max - 1;
212 helper->expect_policy = expect_policy;
223 struct nf_conntrack_helper *helper;
234 helper = &nfcth->helper;
236 ret = nfnl_cthelper_parse_expect_policy(helper, tb[NFCTH_POLICY]);
240 nla_strscpy(helper->name,
247 helper->data_len = size;
249 helper->flags |= NF_CT_HELPER_F_USERSPACE;
250 memcpy(&helper->tuple, tuple, sizeof(struct nf_conntrack_tuple));
252 helper->me = THIS_MODULE;
253 helper->help = nfnl_userspace_cthelper;
254 helper->from_nlattr = nfnl_cthelper_from_nlattr;
255 helper->to_nlattr = nfnl_cthelper_to_nlattr;
259 helper->queue_num = ntohl(nla_get_be32(tb[NFCTH_QUEUE_NUM]));
266 helper->flags |= NF_CT_HELPER_F_CONFIGURED;
269 helper->flags &= ~NF_CT_HELPER_F_CONFIGURED;
274 ret = nf_conntrack_helper_register(helper);
281 kfree(helper->expect_policy);
320 struct nf_conntrack_helper *helper)
326 new_policy = kmalloc_array(helper->expect_class_max + 1,
334 for (i = 0; i < helper->expect_class_max + 1; i++) {
341 ret = nfnl_cthelper_update_policy_one(&helper->expect_policy[i],
348 for (i = 0; i < helper->expect_class_max + 1; i++) {
350 &helper->expect_policy[i];
360 static int nfnl_cthelper_update_policy(struct nf_conntrack_helper *helper,
377 if (helper->expect_class_max + 1 != class_max)
380 return nfnl_cthelper_update_policy_all(tb, helper);
385 struct nf_conntrack_helper *helper)
392 if (size != helper->data_len)
397 ret = nfnl_cthelper_update_policy(helper, tb[NFCTH_POLICY]);
402 helper->queue_num = ntohl(nla_get_be32(tb[NFCTH_QUEUE_NUM]));
409 helper->flags |= NF_CT_HELPER_F_CONFIGURED;
412 helper->flags &= ~NF_CT_HELPER_F_CONFIGURED;
423 struct nf_conntrack_helper *cur, *helper = NULL;
441 cur = &nlcth->helper;
453 helper = cur;
457 if (helper == NULL)
460 ret = nfnl_cthelper_update(tb, helper);
467 struct nf_conntrack_helper *helper)
476 htons(helper->tuple.src.l3num)))
479 if (nla_put_u8(skb, NFCTH_TUPLE_L4PROTONUM, helper->tuple.dst.protonum))
491 struct nf_conntrack_helper *helper)
501 htonl(helper->expect_class_max + 1)))
504 for (i = 0; i < helper->expect_class_max + 1; i++) {
510 helper->expect_policy[i].name))
514 htonl(helper->expect_policy[i].max_expected)))
518 htonl(helper->expect_policy[i].timeout)))
532 int event, struct nf_conntrack_helper *helper)
544 if (nla_put_string(skb, NFCTH_NAME, helper->name))
547 if (nla_put_be32(skb, NFCTH_QUEUE_NUM, htonl(helper->queue_num)))
550 if (nfnl_cthelper_dump_tuple(skb, helper) < 0)
553 if (nfnl_cthelper_dump_policy(skb, helper) < 0)
556 if (nla_put_be32(skb, NFCTH_PRIV_DATA_LEN, htonl(helper->data_len)))
559 if (helper->flags & NF_CT_HELPER_F_CONFIGURED)
649 cur = &nlcth->helper;
707 cur = &nlcth->helper;
795 cur = &nlcth->helper;