openvswitch: use nf_ct_get_tuplepr, invert_tuplepr
These versions deal with the l3proto/l4proto details internally. It removes only caller of nf_ct_get_tuple, so make it static. After this, l3proto->get_l4proto() can be removed in a followup patch. Signed-off-by: Florian Westphal <fw@strlen.de> Acked-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
		
							parent
							
								
									ebee5a50d0
								
							
						
					
					
						commit
						60e3be94e6
					
				| @ -40,13 +40,6 @@ void nf_conntrack_cleanup_start(void); | ||||
| void nf_conntrack_init_end(void); | ||||
| void nf_conntrack_cleanup_end(void); | ||||
| 
 | ||||
| bool nf_ct_get_tuple(const struct sk_buff *skb, unsigned int nhoff, | ||||
| 		     unsigned int dataoff, u_int16_t l3num, u_int8_t protonum, | ||||
| 		     struct net *net, | ||||
| 		     struct nf_conntrack_tuple *tuple, | ||||
| 		     const struct nf_conntrack_l3proto *l3proto, | ||||
| 		     const struct nf_conntrack_l4proto *l4proto); | ||||
| 
 | ||||
| bool nf_ct_invert_tuple(struct nf_conntrack_tuple *inverse, | ||||
| 			const struct nf_conntrack_tuple *orig, | ||||
| 			const struct nf_conntrack_l3proto *l3proto, | ||||
|  | ||||
| @ -222,7 +222,7 @@ static u32 hash_conntrack(const struct net *net, | ||||
| 	return scale_hash(hash_conntrack_raw(tuple, net)); | ||||
| } | ||||
| 
 | ||||
| bool | ||||
| static bool | ||||
| nf_ct_get_tuple(const struct sk_buff *skb, | ||||
| 		unsigned int nhoff, | ||||
| 		unsigned int dataoff, | ||||
| @ -244,7 +244,6 @@ nf_ct_get_tuple(const struct sk_buff *skb, | ||||
| 
 | ||||
| 	return l4proto->pkt_to_tuple(skb, dataoff, net, tuple); | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(nf_ct_get_tuple); | ||||
| 
 | ||||
| bool nf_ct_get_tuplepr(const struct sk_buff *skb, unsigned int nhoff, | ||||
| 		       u_int16_t l3num, | ||||
|  | ||||
| @ -607,23 +607,12 @@ static struct nf_conn * | ||||
| ovs_ct_find_existing(struct net *net, const struct nf_conntrack_zone *zone, | ||||
| 		     u8 l3num, struct sk_buff *skb, bool natted) | ||||
| { | ||||
| 	const struct nf_conntrack_l3proto *l3proto; | ||||
| 	const struct nf_conntrack_l4proto *l4proto; | ||||
| 	struct nf_conntrack_tuple tuple; | ||||
| 	struct nf_conntrack_tuple_hash *h; | ||||
| 	struct nf_conn *ct; | ||||
| 	unsigned int dataoff; | ||||
| 	u8 protonum; | ||||
| 
 | ||||
| 	l3proto = __nf_ct_l3proto_find(l3num); | ||||
| 	if (l3proto->get_l4proto(skb, skb_network_offset(skb), &dataoff, | ||||
| 				 &protonum) <= 0) { | ||||
| 		pr_debug("ovs_ct_find_existing: Can't get protonum\n"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	l4proto = __nf_ct_l4proto_find(l3num, protonum); | ||||
| 	if (!nf_ct_get_tuple(skb, skb_network_offset(skb), dataoff, l3num, | ||||
| 			     protonum, net, &tuple, l3proto, l4proto)) { | ||||
| 	if (!nf_ct_get_tuplepr(skb, skb_network_offset(skb), l3num, | ||||
| 			       net, &tuple)) { | ||||
| 		pr_debug("ovs_ct_find_existing: Can't get tuple\n"); | ||||
| 		return NULL; | ||||
| 	} | ||||
| @ -632,7 +621,7 @@ ovs_ct_find_existing(struct net *net, const struct nf_conntrack_zone *zone, | ||||
| 	if (natted) { | ||||
| 		struct nf_conntrack_tuple inverse; | ||||
| 
 | ||||
| 		if (!nf_ct_invert_tuple(&inverse, &tuple, l3proto, l4proto)) { | ||||
| 		if (!nf_ct_invert_tuplepr(&inverse, &tuple)) { | ||||
| 			pr_debug("ovs_ct_find_existing: Inversion failed!\n"); | ||||
| 			return NULL; | ||||
| 		} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user