projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
datapath: Add clean compat layer for dev_get_stats().
[openvswitch]
/
datapath
/
vport.c
diff --git
a/datapath/vport.c
b/datapath/vport.c
index 91b650e54695f751b26dcec98e526b8282eb2159..f0c81823fdde09c3e6e993e4947321e02ba1ddf8 100644
(file)
--- a/
datapath/vport.c
+++ b/
datapath/vport.c
@@
-910,7
+910,7
@@
int vport_set_stats(struct vport *vport, struct odp_vport_stats *stats)
if (vport->ops->flags & VPORT_F_GEN_STATS) {
spin_lock_bh(&vport->stats_lock);
if (vport->ops->flags & VPORT_F_GEN_STATS) {
spin_lock_bh(&vport->stats_lock);
-
memcpy(&vport->offset_stats, stats, sizeof(struct odp_vport_stats))
;
+
vport->offset_stats = *stats
;
spin_unlock_bh(&vport->stats_lock);
return 0;
spin_unlock_bh(&vport->stats_lock);
return 0;
@@
-1030,7
+1030,7
@@
int vport_get_stats(struct vport *vport, struct odp_vport_stats *stats)
spin_lock_bh(&vport->stats_lock);
spin_lock_bh(&vport->stats_lock);
-
memcpy(stats, &vport->offset_stats, sizeof(struct odp_vport_stats))
;
+
*stats = vport->offset_stats
;
stats->rx_errors += vport->err_stats.rx_errors
+ vport->err_stats.rx_frame_err
stats->rx_errors += vport->err_stats.rx_errors
+ vport->err_stats.rx_frame_err
@@
-1217,6
+1217,9
@@
void vport_receive(struct vport *vport, struct sk_buff *skb)
local_bh_enable();
}
local_bh_enable();
}
+ if (!(vport->ops->flags & VPORT_F_FLOW))
+ OVS_CB(skb)->flow = NULL;
+
if (!(vport->ops->flags & VPORT_F_TUN_ID))
OVS_CB(skb)->tun_id = 0;
if (!(vport->ops->flags & VPORT_F_TUN_ID))
OVS_CB(skb)->tun_id = 0;