IP_CT_DIR_REPLY
#define NF_CT_ZONE_DIR_REPL (1 << IP_CT_DIR_REPLY)
ct->tuplehash[IP_CT_DIR_REPLY].tuple = *newreply;
FLOW_OFFLOAD_DIR_REPLY = IP_CT_DIR_REPLY,
#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
if (exp->dir == IP_CT_DIR_REPLY) {
new_callid = ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u.tcp.port;
expect_reply->dir = IP_CT_DIR_REPLY;
if (udph->source == htons(SNMP_PORT) && dir != IP_CT_DIR_REPLY)
new_tuple = ct->tuplehash[IP_CT_DIR_REPLY].tuple;
ARG_TUPLE(&ct->tuplehash[IP_CT_DIR_REPLY].tuple));
new_reply = ct->tuplehash[IP_CT_DIR_REPLY].tuple;
new_reply = ct->tuplehash[IP_CT_DIR_REPLY].tuple;
IP_CT_DIR_REPLY, &rtuple);
exp->tuple = ct->tuplehash[IP_CT_DIR_REPLY].tuple;
&ct2->tuplehash[IP_CT_DIR_REPLY].tuple))
if (!nf_ct_tuple_equal(&ct1->tuplehash[IP_CT_DIR_REPLY].tuple,
id2 = nf_ct_zone_id(nf_ct_zone(ct2), IP_CT_DIR_REPLY);
id1 = nf_ct_zone_id(nf_ct_zone(ct1), IP_CT_DIR_REPLY);
&loser_ct->tuplehash[IP_CT_DIR_REPLY].tuple,
hlist_nulls_add_head_rcu(&loser_ct->tuplehash[IP_CT_DIR_REPLY].hnnode,
hash = *(unsigned long *)&ct->tuplehash[IP_CT_DIR_REPLY].hnnode.pprev;
&ct->tuplehash[IP_CT_DIR_REPLY].tuple,
nf_ct_zone_id(nf_ct_zone(ct), IP_CT_DIR_REPLY));
if (nf_ct_key_equal(h, &ct->tuplehash[IP_CT_DIR_REPLY].tuple,
hash = __hash_conntrack(net, tuple, nf_ct_zone_id(zone, IP_CT_DIR_REPLY), hsize);
ct->tuplehash[IP_CT_DIR_REPLY].tuple = *repl;
*(unsigned long *)(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode.pprev) = hash;
rid = nf_ct_zone_id(zone, IP_CT_DIR_REPLY);
if (NF_CT_DIRECTION(h) == IP_CT_DIR_REPLY) {
if (NF_CT_DIRECTION(h) != IP_CT_DIR_REPLY)
hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode);
&ct->tuplehash[IP_CT_DIR_REPLY].tuple,
nf_ct_zone_id(nf_ct_zone(ct), IP_CT_DIR_REPLY));
nf_ct_tuple_equal(&ct1->tuplehash[IP_CT_DIR_REPLY].tuple,
&ct2->tuplehash[IP_CT_DIR_REPLY].tuple) &&
nf_ct_zone_equal(ct1, nf_ct_zone(ct2), IP_CT_DIR_REPLY) &&
rid = nf_ct_zone_id(zone, IP_CT_DIR_REPLY);
hlist_nulls_add_head_rcu(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode,
&ct->tuplehash[IP_CT_DIR_REPLY].tuple,
nf_ct_zone_id(nf_ct_zone(ct), IP_CT_DIR_REPLY));
if (nf_ct_key_equal(h, &ct->tuplehash[IP_CT_DIR_REPLY].tuple,
hlist_nulls_add_head(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode, &evicted_list);
hlist_nulls_del_rcu(&ct->tuplehash[IP_CT_DIR_REPLY].hnnode);
ftp->flags[IP_CT_DIR_REPLY] |= NF_CT_FTP_SEQ_PICKUP;
[IP_CT_DIR_REPLY] = {
if (dir == IP_CT_DIR_REPLY)
tuple = nf_ct_tuple(ct, IP_CT_DIR_REPLY);
tuple->dst.dir = IP_CT_DIR_REPLY;
ret = change_seq_adj(&seqadj->seq[IP_CT_DIR_REPLY],
if (ctnetlink_dump_tuples(skb, nf_ct_tuple(ct, IP_CT_DIR_REPLY)) < 0)
if (dump_counters(skb, acct, IP_CT_DIR_REPLY, type) < 0)
[CTA_EXPECT_NAT_DIR] = NLA_POLICY_MAX(NLA_BE32, IP_CT_DIR_REPLY),
seq = &seqadj->seq[IP_CT_DIR_REPLY];
if (ctnetlink_dump_tuples(skb, nf_ct_tuple(ct, IP_CT_DIR_REPLY)) < 0)
if (ctnetlink_dump_tuples(skb, nf_ct_tuple(ct, IP_CT_DIR_REPLY)) < 0)
memcpy(&t, &ct->tuplehash[IP_CT_DIR_REPLY].tuple, sizeof(t));
dir = IP_CT_DIR_REPLY;
if (nf_ct_gre_keymap_add(ct, IP_CT_DIR_REPLY, &exp_reply->tuple) != 0) {
dir == IP_CT_DIR_REPLY ? "reply" : "orig", ct);
if (dir == IP_CT_DIR_REPLY)
ct->proto.sctp.vtag[IP_CT_DIR_REPLY] = ih->init_tag;
ct->proto.sctp.vtag[IP_CT_DIR_REPLY] = sh->vtag;
ct->proto.sctp.vtag[IP_CT_DIR_REPLY]))
ct->proto.sctp.vtag[IP_CT_DIR_REPLY] =
dir == IP_CT_DIR_REPLY)
if (dir == IP_CT_DIR_REPLY && index == TCP_ACK_SET &&
ct->proto.tcp.last_dir == IP_CT_DIR_REPLY &&
if (dir == IP_CT_DIR_REPLY &&
if (dir == IP_CT_DIR_REPLY && !tcph->ack)
print_tuple(s, &ct->tuplehash[IP_CT_DIR_REPLY].tuple, l4proto);
seq_print_acct(s, ct, IP_CT_DIR_REPLY);
nf_ct_dump_tuple(&ct->tuplehash[IP_CT_DIR_REPLY].tuple);
tuple = &ct->tuplehash[IP_CT_DIR_REPLY].tuple;
&ignored_ct->tuplehash[IP_CT_DIR_REPLY].tuple))
&ct->tuplehash[IP_CT_DIR_REPLY].tuple);
&ct->tuplehash[IP_CT_DIR_REPLY].tuple);
ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3 :
ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3);
if (dir == IP_CT_DIR_REPLY)
newaddr = ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3;
exp->dir = IP_CT_DIR_REPLY;
tuple = &ct->tuplehash[IP_CT_DIR_REPLY].tuple;
if (CTINFO2DIR(ctinfo) == IP_CT_DIR_REPLY)
if (dir == IP_CT_DIR_REPLY)
if (dir == IP_CT_DIR_REPLY)
if (dir == IP_CT_DIR_REPLY && ct_sip_info->forced_dport) {
exp->dir = IP_CT_DIR_REPLY;
if (CTINFO2DIR(ctinfo) == IP_CT_DIR_REPLY) {
case IP_CT_DIR_REPLY:
nft_ct_get_eval_counter(c, k, IP_CT_DIR_REPLY);
case IP_CT_DIR_REPLY:
case IP_CT_DIR_REPLY:
rtuple = &ct->tuplehash[IP_CT_DIR_REPLY].tuple;
what = atomic64_read(&counters[IP_CT_DIR_REPLY].packets);
what += atomic64_read(&counters[IP_CT_DIR_REPLY].packets);
what = atomic64_read(&counters[IP_CT_DIR_REPLY].bytes);
what += atomic64_read(&counters[IP_CT_DIR_REPLY].bytes);
bytes = atomic64_read(&counters[IP_CT_DIR_REPLY].bytes);
pkts = atomic64_read(&counters[IP_CT_DIR_REPLY].packets);
atomic64_read(&counters[IP_CT_DIR_REPLY].bytes);
atomic64_read(&counters[IP_CT_DIR_REPLY].packets);
tuple = &ct->tuplehash[IP_CT_DIR_REPLY].tuple;
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3,
return conntrack_addrcmp(&ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3,
tuple = &ct->tuplehash[IP_CT_DIR_REPLY].tuple;
if (NF_CT_DIRECTION(h) == IP_CT_DIR_REPLY)
dir = IP_CT_DIR_REPLY;
#define NF_CT_ZONE_DIR_REPL (1 << IP_CT_DIR_REPLY)
tuple = &ct_lk->tuplehash[IP_CT_DIR_REPLY].tuple;