if (nat_ipv6_dev_get_saddr(nf_ct_net(ct), out, &ipv6_hdr(skb)->daddr, 0, &src) < 0) return NF_DROP; nat = nf_ct_nat_ext_add(ct); if (nat) nat->masq_index = out->ifindex; newrange.flags = range->flags | NF_NAT_RANGE_MAP_IPS; newrange.min_addr.in6 = ...
enum ip_conntrack_info *ctinfo) { struct nf_conntrack_tuple tuple; struct nf_conntrack_tuple_hash *h; struct nf_conn *ct; #ifdef A int i; struct conntrack_cache *cache; #endif if (!nf_ct_get_tuple(skb, skb_network_offset(skb), dataoff, l3num, protonum, &tuple, l3proto, l4prot...
{enumip_conntrack_info ctinfo;structnf_conn *ct, *tmpl; u_int8_t protonum;intdataoff, ret; tmpl= nf_ct_get(skb, &ctinfo);if(tmpl || ctinfo ==IP_CT_UNTRACKED) {/*Previously seen (loopback or untracked)? Ignore.*/if((tmpl && !nf_ct_is_template(tmpl)) ||ctinfo==IP_CT_U...
static inline struct nf_conn *nf_ct_get(const struct sk_buff *skb, enum ip_conntrack_info *ctinfo) nf_conntrack中tuple存储如上图所示。在struct nf_conntrack_tuple_hash中,成员hnode链接入ct->hash[]->first中的。实际的记录在保存在struct nf_conntrack_tuple中。
ctnetlink_dump_protoinfo(struct sk_buff *skb, const struct nf_conn *ct) { 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); ...
static inline structnf_conn*nf_ct_get(const structsk_buff*skb, enumip_conntrack_info*ctinfo) nf_conntrack中tuple存储如上图所示。在struct nf_conntrack_tuple_hash中,成员hnode链接入ct->hash[]->first中的。实际的记录在保存在struct nf_conntrack_tuple中。
[MAX_EXT_SLOTS]; }; int nf_ct_exts_add(const struct nf_conn *ct, void *ext); void *nf_ct_exts_get(const struct nf_conn *ct, int idx); void nf_ct_exts_remove(const struct nf_conn *ct, int idx); struct nf_conntrack_ext *nf_conn_exts_find(const struct nf_conn *ct); ...
staticinlinestructnf_conn*nf_ct_get(conststructsk_buff*skb,enumip_conntrack_info *ctinfo) nf_conntrack中tuple存储如上图所示。在structnf_conntrack_tuple_hash中,成员hnode链接入 ct->hash[]->first中的。实际的记录在保存在structnf_conntrack_tuple中。
static inline structnf_conn*nf_ct_tuplehash_to_ctrack(const structnf_conntrack_tuple_hash*hash) static inline structnf_conn*nf_ct_get(const 313 static void__nf_conntrack_hash_insert(structnf_conn*ct, 314 unsigned int hash, 315 unsigned int repl_hash) ...
integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmmirror.com/is-plain-object/-/is-plain-...