• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/net/netfilter/

Lines Matching refs:ct

114 ctnetlink_dump_status(struct sk_buff *skb, const struct nf_conn *ct)
116 __be32 status = htonl((u_int32_t) ct->status);
125 ctnetlink_dump_timeout(struct sk_buff *skb, const struct nf_conn *ct)
127 long timeout_l = ct->timeout.expires - jiffies;
143 ctnetlink_dump_protoinfo(struct sk_buff *skb, const struct nf_conn *ct)
145 struct nf_conntrack_l4proto *l4proto = nf_ct_l4proto_find_get(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num, ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum);
156 ret = l4proto->to_nfattr(skb, nest_proto, ct);
170 ctnetlink_dump_helpinfo(struct sk_buff *skb, const struct nf_conn *ct)
173 const struct nf_conn_help *help = nfct_help(ct);
188 helper->to_nfattr(skb, ct);
202 ctnetlink_dump_counters(struct sk_buff *skb, const struct nf_conn *ct,
209 tmp = htonl(ct->counters[dir].packets);
212 tmp = htonl(ct->counters[dir].bytes);
228 ctnetlink_dump_mark(struct sk_buff *skb, const struct nf_conn *ct)
230 __be32 mark = htonl(ct->mark);
243 ctnetlink_dump_id(struct sk_buff *skb, const struct nf_conn *ct)
245 __be32 id = htonl(ct->id);
254 ctnetlink_dump_use(struct sk_buff *skb, const struct nf_conn *ct)
256 __be32 use = htonl(atomic_read(&ct->ct_general.use));
265 #define tuple(ct, dir) (&(ct)->tuplehash[dir].tuple)
270 const struct nf_conn *ct)
283 ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
288 if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_ORIGINAL)) < 0)
293 if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_REPLY)) < 0)
297 if (ctnetlink_dump_status(skb, ct) < 0 ||
298 ctnetlink_dump_timeout(skb, ct) < 0 ||
299 ctnetlink_dump_counters(skb, ct, IP_CT_DIR_ORIGINAL) < 0 ||
300 ctnetlink_dump_counters(skb, ct, IP_CT_DIR_REPLY) < 0 ||
301 ctnetlink_dump_protoinfo(skb, ct) < 0 ||
302 ctnetlink_dump_helpinfo(skb, ct) < 0 ||
303 ctnetlink_dump_mark(skb, ct) < 0 ||
304 ctnetlink_dump_id(skb, ct) < 0 ||
305 ctnetlink_dump_use(skb, ct) < 0)
324 struct nf_conn *ct = (struct nf_conn *)ptr;
331 if (ct == &nf_conntrack_untracked)
361 nfmsg->nfgen_family = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
366 if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_ORIGINAL)) < 0)
371 if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_REPLY)) < 0)
376 if (ctnetlink_dump_counters(skb, ct, IP_CT_DIR_ORIGINAL) < 0 ||
377 ctnetlink_dump_counters(skb, ct, IP_CT_DIR_REPLY) < 0)
380 if (ctnetlink_dump_status(skb, ct) < 0)
383 if (ctnetlink_dump_timeout(skb, ct) < 0)
387 && ctnetlink_dump_protoinfo(skb, ct) < 0)
390 if ((events & IPCT_HELPER || nfct_help(ct))
391 && ctnetlink_dump_helpinfo(skb, ct) < 0)
395 if ((events & IPCT_MARK || ct->mark)
396 && ctnetlink_dump_mark(skb, ct) < 0)
401 (ctnetlink_dump_counters(skb, ct, IP_CT_DIR_ORIGINAL) < 0 ||
402 ctnetlink_dump_counters(skb, ct, IP_CT_DIR_REPLY) < 0))
424 #define L3PROTO(ct) ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num
429 struct nf_conn *ct, *last;
443 ct = nf_ct_tuplehash_to_ctrack(h);
447 if (l3proto && L3PROTO(ct) != l3proto)
450 if (ct != last)
457 1, ct) < 0) {
458 nf_conntrack_get(&ct->ct_general);
459 cb->args[1] = (unsigned long)ct;
465 memset(&ct->counters, 0, sizeof(ct->counters));
574 const struct nf_conn *ct,
585 npt = nf_nat_proto_find_get(ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum);
608 const struct nf_conn *ct, struct nf_nat_range *range)
634 err = nfnetlink_parse_nat_proto(tb[CTA_NAT_PROTO-1], ct, range);
671 struct nf_conn *ct;
696 ct = nf_ct_tuplehash_to_ctrack(h);
700 if (ct->id != id) {
701 nf_ct_put(ct);
705 if (del_timer(&ct->timeout))
706 ct->timeout.function((unsigned long)ct);
708 nf_ct_put(ct);
719 struct nf_conn *ct;
751 ct = nf_ct_tuplehash_to_ctrack(h);
756 nf_ct_put(ct);
761 IPCTNL_MSG_CT_NEW, 1, ct);
762 nf_ct_put(ct);
779 ctnetlink_change_status(struct nf_conn *ct, struct nfattr *cda[])
783 d = ct->status ^ status;
805 if (nfnetlink_parse_nat(cda[CTA_NAT_DST-1], ct,
808 if (nf_nat_initialized(ct,
811 nf_nat_setup_info(ct, &range, NF_IP_PRE_ROUTING);
814 if (nfnetlink_parse_nat(cda[CTA_NAT_SRC-1], ct,
817 if (nf_nat_initialized(ct,
820 nf_nat_setup_info(ct, &range, NF_IP_POST_ROUTING);
828 ct->status |= status & ~(IPS_NAT_DONE_MASK | IPS_NAT_MASK);
834 ctnetlink_change_helper(struct nf_conn *ct, struct nfattr *cda[])
837 struct nf_conn_help *help = nfct_help(ct);
842 if (ct->master)
852 nf_ct_remove_expectations(ct);
881 ctnetlink_change_timeout(struct nf_conn *ct, struct nfattr *cda[])
885 if (!del_timer(&ct->timeout))
888 ct->timeout.expires = jiffies + timeout * HZ;
889 add_timer(&ct->timeout);
895 ctnetlink_change_protoinfo(struct nf_conn *ct, struct nfattr *cda[])
899 u_int16_t npt = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum;
900 u_int16_t l3num = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
908 err = l4proto->from_nfattr(tb, ct);
915 ctnetlink_change_conntrack(struct nf_conn *ct, struct nfattr *cda[])
920 err = ctnetlink_change_helper(ct, cda);
926 err = ctnetlink_change_timeout(ct, cda);
932 err = ctnetlink_change_status(ct, cda);
938 err = ctnetlink_change_protoinfo(ct, cda);
945 ct->mark = ntohl(*(__be32 *)NFA_DATA(cda[CTA_MARK-1]));
956 struct nf_conn *ct;
961 ct = nf_conntrack_alloc(otuple, rtuple);
962 if (ct == NULL || IS_ERR(ct))
967 ct->timeout.expires = ntohl(*(__be32 *)NFA_DATA(cda[CTA_TIMEOUT-1]));
969 ct->timeout.expires = jiffies + ct->timeout.expires * HZ;
970 ct->status |= IPS_CONFIRMED;
973 err = ctnetlink_change_status(ct, cda);
979 err = ctnetlink_change_protoinfo(ct, cda);
986 ct->mark = ntohl(*(__be32 *)NFA_DATA(cda[CTA_MARK-1]));
989 help = nfct_help(ct);
996 add_timer(&ct->timeout);
997 nf_conntrack_hash_insert(ct);
1005 nf_conntrack_free(ct);
1407 struct nf_conn *ct;
1426 ct = nf_ct_tuplehash_to_ctrack(h);
1427 help = nfct_help(ct);
1435 exp = nf_conntrack_expect_alloc(ct);
1443 exp->master = ct;