git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
datapath: Always use generic stats for devices (vports)
[sliver-openvswitch.git]
/
datapath
/
vport-internal_dev.c
diff --git
a/datapath/vport-internal_dev.c
b/datapath/vport-internal_dev.c
index
b7bcbce
..
ecfb379
100644
(file)
--- a/
datapath/vport-internal_dev.c
+++ b/
datapath/vport-internal_dev.c
@@
-6,6
+6,7
@@
* kernel, by Linus Torvalds and others.
*/
* kernel, by Linus Torvalds and others.
*/
+#include <linux/hardirq.h>
#include <linux/if_vlan.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include <linux/if_vlan.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
@@
-31,16
+32,14
@@
static inline struct internal_dev *internal_dev_priv(struct net_device *netdev)
return netdev_priv(netdev);
}
return netdev_priv(netdev);
}
-/* This function is only called by the kernel network layer. It is not a vport
- * get_stats() function. If a vport get_stats() function is defined that
- * results in this being called it will cause infinite recursion. */
+/* This function is only called by the kernel network layer.*/
static struct net_device_stats *internal_dev_sys_stats(struct net_device *netdev)
{
struct vport *vport = internal_dev_get_vport(netdev);
struct net_device_stats *stats = &internal_dev_priv(netdev)->stats;
if (vport) {
static struct net_device_stats *internal_dev_sys_stats(struct net_device *netdev)
{
struct vport *vport = internal_dev_get_vport(netdev);
struct net_device_stats *stats = &internal_dev_priv(netdev)->stats;
if (vport) {
- struct
rtnl_link_stats64
vport_stats;
+ struct
ovs_vport_stats
vport_stats;
vport_get_stats(vport, &vport_stats);
vport_get_stats(vport, &vport_stats);
@@
-54,7
+53,6
@@
static struct net_device_stats *internal_dev_sys_stats(struct net_device *netdev
stats->tx_errors = vport_stats.rx_errors;
stats->rx_dropped = vport_stats.tx_dropped;
stats->tx_dropped = vport_stats.rx_dropped;
stats->tx_errors = vport_stats.rx_errors;
stats->rx_dropped = vport_stats.tx_dropped;
stats->tx_dropped = vport_stats.rx_dropped;
- stats->collisions = vport_stats.collisions;
}
return stats;
}
return stats;
@@
-116,14
+114,9
@@
static const struct ethtool_ops internal_dev_ethtool_ops = {
static int internal_dev_change_mtu(struct net_device *netdev, int new_mtu)
{
static int internal_dev_change_mtu(struct net_device *netdev, int new_mtu)
{
- struct vport *vport = internal_dev_get_vport(netdev);
-
if (new_mtu < 68)
return -EINVAL;
if (new_mtu < 68)
return -EINVAL;
- if (new_mtu > dp_min_mtu(vport->dp))
- return -EINVAL;
-
netdev->mtu = new_mtu;
return 0;
}
netdev->mtu = new_mtu;
return 0;
}
@@
-229,7
+222,7
@@
error:
return ERR_PTR(err);
}
return ERR_PTR(err);
}
-static
int
internal_dev_destroy(struct vport *vport)
+static
void
internal_dev_destroy(struct vport *vport)
{
struct netdev_vport *netdev_vport = netdev_vport_priv(vport);
{
struct netdev_vport *netdev_vport = netdev_vport_priv(vport);
@@
-238,8
+231,6
@@
static int internal_dev_destroy(struct vport *vport)
/* unregister_netdevice() waits for an RCU grace period. */
unregister_netdevice(netdev_vport->dev);
/* unregister_netdevice() waits for an RCU grace period. */
unregister_netdevice(netdev_vport->dev);
-
- return 0;
}
static int internal_dev_recv(struct vport *vport, struct sk_buff *skb)
}
static int internal_dev_recv(struct vport *vport, struct sk_buff *skb)
@@
-271,11
+262,10
@@
static int internal_dev_recv(struct vport *vport, struct sk_buff *skb)
}
const struct vport_ops internal_vport_ops = {
}
const struct vport_ops internal_vport_ops = {
- .type = O
DP
_VPORT_TYPE_INTERNAL,
- .flags = VPORT_F_REQUIRED | VPORT_F_
GEN_STATS | VPORT_F_
FLOW,
+ .type = O
VS
_VPORT_TYPE_INTERNAL,
+ .flags = VPORT_F_REQUIRED | VPORT_F_FLOW,
.create = internal_dev_create,
.destroy = internal_dev_destroy,
.create = internal_dev_create,
.destroy = internal_dev_destroy,
- .set_mtu = netdev_set_mtu,
.set_addr = netdev_set_addr,
.get_name = netdev_get_name,
.get_addr = netdev_get_addr,
.set_addr = netdev_set_addr,
.get_name = netdev_get_name,
.get_addr = netdev_get_addr,
@@
-284,7
+274,6
@@
const struct vport_ops internal_vport_ops = {
.is_running = netdev_is_running,
.get_operstate = netdev_get_operstate,
.get_ifindex = netdev_get_ifindex,
.is_running = netdev_is_running,
.get_operstate = netdev_get_operstate,
.get_ifindex = netdev_get_ifindex,
- .get_iflink = netdev_get_iflink,
.get_mtu = netdev_get_mtu,
.send = internal_dev_recv,
};
.get_mtu = netdev_get_mtu,
.send = internal_dev_recv,
};