History

flow_dissector: change port array into src, dst tuple

Jiri Pirko committed 11 years ago

Commit 59346af1 parent 67a900c7 files · +18 −15Browse files

Unified · Split

7 files
  1. drivers/net/ethernet/cisco/enic/enic_clsf.c +2 −2
  2. drivers/net/ethernet/cisco/enic/enic_ethtool.c +2 −2
  3. include/net/flow_dissector.h +6 −3
  4. include/net/ip.h +2 −2
  5. include/net/ipv6.h +2 −2
  6. net/core/flow_dissector.c +2 −2
  7. net/sched/cls_flow.c +2 −2
drivers/net/ethernet/cisco/enic/enic_clsf.c+2−2
@@ -35,8 +35,8 @@ int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq) · 34 unmodified lines
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+2−2
@@ -352,10 +352,10 @@ static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd) · 351 unmodified lines
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+6−3
@@ -34,13 +34,16 @@ struct flow_dissector_key_addrs { · 33 unmodified lines
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+2−2
@@ -362,8 +362,8 @@ static inline void inet_set_txhash(struct sock *sk) · 361 unmodified lines
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+2−2
@@ -700,8 +700,8 @@ static inline void ip6_set_txhash(struct sock *sk) · 699 unmodified lines
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+2−2
@@ -385,9 +385,9 @@ static inline u32 __flow_hash_from_keys(struct flow_keys *keys, u32 keyval) · 384 unmodified lines
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+2−2
@@ -88,7 +88,7 @@ static u32 flow_get_proto(const struct sk_buff *skb, const struct flow_keys *flo · 87 unmodified lines
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 }
@@ -96,7 +96,7 @@ static u32 flow_get_proto_src(const struct sk_buff *skb, const struct flow_keys · 1 unmodified line
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 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t