Skip to content

Commit 59346af

Browse files
jpirkodavem330
authored andcommitted
flow_dissector: change port array into src, dst tuple
Signed-off-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 67a900c commit 59346af

File tree

7 files changed

+18
-15
lines changed

7 files changed

+18
-15
lines changed

drivers/net/ethernet/cisco/enic/enic_clsf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq)
3535
data.type = FILTER_IPV4_5TUPLE;
3636
data.u.ipv4.src_addr = ntohl(keys->addrs.src);
3737
data.u.ipv4.dst_addr = ntohl(keys->addrs.dst);
38-
data.u.ipv4.src_port = ntohs(keys->ports.port16[0]);
39-
data.u.ipv4.dst_port = ntohs(keys->ports.port16[1]);
38+
data.u.ipv4.src_port = ntohs(keys->ports.src);
39+
data.u.ipv4.dst_port = ntohs(keys->ports.dst);
4040
data.u.ipv4.flags = FILTER_FIELDS_IPV4_5TUPLE;
4141

4242
spin_lock_bh(&enic->devcmd_lock);

drivers/net/ethernet/cisco/enic/enic_ethtool.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,10 +352,10 @@ static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd)
352352
fsp->h_u.tcp_ip4_spec.ip4dst = n->keys.addrs.dst;
353353
fsp->m_u.tcp_ip4_spec.ip4dst = (__u32)~0;
354354

355-
fsp->h_u.tcp_ip4_spec.psrc = n->keys.ports.port16[0];
355+
fsp->h_u.tcp_ip4_spec.psrc = n->keys.ports.src;
356356
fsp->m_u.tcp_ip4_spec.psrc = (__u16)~0;
357357

358-
fsp->h_u.tcp_ip4_spec.pdst = n->keys.ports.port16[1];
358+
fsp->h_u.tcp_ip4_spec.pdst = n->keys.ports.dst;
359359
fsp->m_u.tcp_ip4_spec.pdst = (__u16)~0;
360360

361361
fsp->ring_cookie = n->rq_id;

include/net/flow_dissector.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,16 @@ struct flow_dissector_key_addrs {
3434
/**
3535
* flow_dissector_key_tp_ports:
3636
* @ports: port numbers of Transport header
37-
* port16[0]: src port number
38-
* port16[1]: dst port number
37+
* src: source port number
38+
* dst: destination port number
3939
*/
4040
struct flow_dissector_key_ports {
4141
union {
4242
__be32 ports;
43-
__be16 port16[2];
43+
struct {
44+
__be16 src;
45+
__be16 dst;
46+
};
4447
};
4548
};
4649

include/net/ip.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,8 @@ static inline void inet_set_txhash(struct sock *sk)
362362

363363
keys.addrs.src = inet->inet_saddr;
364364
keys.addrs.dst = inet->inet_daddr;
365-
keys.ports.port16[0] = inet->inet_sport;
366-
keys.ports.port16[1] = inet->inet_dport;
365+
keys.ports.src = inet->inet_sport;
366+
keys.ports.dst = inet->inet_dport;
367367

368368
sk->sk_txhash = flow_hash_from_keys(&keys);
369369
}

include/net/ipv6.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -700,8 +700,8 @@ static inline void ip6_set_txhash(struct sock *sk)
700700

701701
keys.addrs.src = (__force __be32)ipv6_addr_hash(&np->saddr);
702702
keys.addrs.dst = (__force __be32)ipv6_addr_hash(&sk->sk_v6_daddr);
703-
keys.ports.port16[0] = inet->inet_sport;
704-
keys.ports.port16[1] = inet->inet_dport;
703+
keys.ports.src = inet->inet_sport;
704+
keys.ports.dst = inet->inet_dport;
705705

706706
sk->sk_txhash = flow_hash_from_keys(&keys);
707707
}

net/core/flow_dissector.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,9 @@ static inline u32 __flow_hash_from_keys(struct flow_keys *keys, u32 keyval)
385385
/* get a consistent hash (same value on both flow directions) */
386386
if (((__force u32)keys->addrs.dst < (__force u32)keys->addrs.src) ||
387387
(((__force u32)keys->addrs.dst == (__force u32)keys->addrs.src) &&
388-
((__force u16)keys->ports.port16[1] < (__force u16)keys->ports.port16[0]))) {
388+
((__force u16)keys->ports.dst < (__force u16)keys->ports.src))) {
389389
swap(keys->addrs.dst, keys->addrs.src);
390-
swap(keys->ports.port16[0], keys->ports.port16[1]);
390+
swap(keys->ports.src, keys->ports.dst);
391391
}
392392

393393
hash = __flow_hash_3words((__force u32)keys->addrs.dst,

net/sched/cls_flow.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,15 @@ static u32 flow_get_proto(const struct sk_buff *skb, const struct flow_keys *flo
8888
static u32 flow_get_proto_src(const struct sk_buff *skb, const struct flow_keys *flow)
8989
{
9090
if (flow->ports.ports)
91-
return ntohs(flow->ports.port16[0]);
91+
return ntohs(flow->ports.src);
9292

9393
return addr_fold(skb->sk);
9494
}
9595

9696
static u32 flow_get_proto_dst(const struct sk_buff *skb, const struct flow_keys *flow)
9797
{
9898
if (flow->ports.ports)
99-
return ntohs(flow->ports.port16[1]);
99+
return ntohs(flow->ports.dst);
100100

101101
return addr_fold(skb_dst(skb)) ^ (__force u16) tc_skb_protocol(skb);
102102
}

0 commit comments

Comments
 (0)