[linux-yocto] [PATCH 11/29] openvswitch: Use TCP flags in the flow key for stats.
zhe.he at windriver.com
zhe.he at windriver.com
Wed Aug 20 22:50:51 PDT 2014
From: Jarno Rajahalme <jrajahalme at nicira.com>
commit 88d73f6c411ac2f057829b93b3cf202ee551f6cb upstream
We already extract the TCP flags for the key, might as well use that
for stats.
Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
Acked-by: Pravin B Shelar <pshelar at nicira.com>
Signed-off-by: Jesse Gross <jesse at nicira.com>
Signed-off-by: He Zhe <zhe.he at windriver.com>
---
net/openvswitch/flow.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/net/openvswitch/flow.c b/net/openvswitch/flow.c
index 432f04d..e0fc12b 100644
--- a/net/openvswitch/flow.c
+++ b/net/openvswitch/flow.c
@@ -69,14 +69,12 @@ void ovs_flow_stats_update(struct sw_flow *flow, struct sk_buff *skb)
stats = rcu_dereference(flow->stats[node]);
- if ((flow->key.eth.type == htons(ETH_P_IP) ||
- flow->key.eth.type == htons(ETH_P_IPV6)) &&
- flow->key.ip.frag != OVS_FRAG_TYPE_LATER &&
- flow->key.ip.proto == IPPROTO_TCP &&
- likely(skb->len >= skb_transport_offset(skb) + sizeof(struct tcphdr))) {
- tcp_flags = TCP_FLAGS_BE16(tcp_hdr(skb));
+ if (likely(flow->key.ip.proto == IPPROTO_TCP)) {
+ if (likely(flow->key.eth.type == htons(ETH_P_IP)))
+ tcp_flags = flow->key.ipv4.tp.flags;
+ else if (likely(flow->key.eth.type == htons(ETH_P_IPV6)))
+ tcp_flags = flow->key.ipv6.tp.flags;
}
-
/* Check if already have node-specific stats. */
if (likely(stats)) {
spin_lock(&stats->lock);
--
1.9.1
More information about the linux-yocto
mailing list