Implements change protoinfo via from_nfattr
Subsystems (2)
PATCH 7/7 Implements change protoinfo via from_nfattr
Add a function to parse private protocol attributes.
net/ipv4/netfilter/ip_conntrack_proto_tcp.c +12 -0
@@ -351,6 +351,17 @@ nfattr_failure: return -1; } + +static int nfattr_to_tcp (struct nfattr *tb[],struct ip_conntrack *ct) +{ +if (!tb[CTA_PROTOINFO_TCP_STATE -1 ]) +return -EINVAL ; + + ct->proto.tcp.state = + *(u_int8_t *)NFA_DATA (tb[CTA_PROTOINFO_TCP_STATE -1 ]); + +return 0 ; +}#endif static unsigned int get_conntrack_index (const struct tcphdr *tcph)
@@ -1121,6 +1132,7 @@#if defined(CONFIG_IP_NF_CONNTRACK_NETLINK ) || \ defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE ) .to_nfattr = tcp_to_nfattr, + .from_nfattr = nfattr_to_tcp, .tuple_to_nfattr = ip_ct_port_tuple_to_nfattr, .nfattr_to_tuple = ip_ct_port_nfattr_to_tuple,#endif
include/linux/netfilter_ipv4/ip_conntrack_protocol.h +2 -0
@@ -52,6 +52,8 @@int (*to_nfattr)(struct sk_buff *skb,struct nfattr *nfa,const struct ip_conntrack *ct); +int (*from_nfattr)(struct nfattr *tb[],struct ip_conntrack *ct); +int (*tuple_to_nfattr)(struct sk_buff *skb,const struct ip_conntrack_tuple *t); int (*nfattr_to_tuple)(struct nfattr *tb[],