Skip to content

Commit

Permalink
openvswitch: use nf_ct_get_tuplepr, invert_tuplepr
Browse files Browse the repository at this point in the history
Upstream commit:
    commit 60e3be94e6a1c5162a0763c9aafb5190b2b1fdce
    Author: Florian Westphal <[email protected]>
    Date:   Mon Jun 25 17:55:32 2018 +0200

    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 <[email protected]>
    Acked-by: Pravin B Shelar <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>

This patch backports the above upstream kernel patch to OVS.

Cc: Florian Westphal <[email protected]>
Tested-by: Greg Rose <[email protected]>
Reviewed-by: Greg Rose <[email protected]>
Acked-by: Yi-Hung Wei <[email protected]>
Signed-off-by: Yifeng Sun <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
Florian Westphal authored and blp committed May 10, 2019
1 parent 340aa57 commit d94ae5c
Showing 1 changed file with 3 additions and 14 deletions.
17 changes: 3 additions & 14 deletions datapath/conntrack.c
Original file line number Diff line number Diff line change
Expand Up @@ -646,23 +646,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;
}
Expand All @@ -671,7 +660,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;
}
Expand Down

0 comments on commit d94ae5c

Please sign in to comment.