datapath: Always use generic stats for devices (vports)
[sliver-openvswitch.git] / datapath / vport-internal_dev.c
index 8cb7083..ecfb379 100644 (file)
@@ -32,16 +32,14 @@ static inline struct internal_dev *internal_dev_priv(struct net_device *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) {
-               struct rtnl_link_stats64 vport_stats;
+               struct ovs_vport_stats vport_stats;
 
                vport_get_stats(vport, &vport_stats);
 
@@ -55,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->collisions       = vport_stats.collisions;
        }
 
        return stats;
@@ -117,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)
 {
-       struct vport *vport = internal_dev_get_vport(netdev);
-
        if (new_mtu < 68)
                return -EINVAL;
 
-       if (new_mtu > dp_min_mtu(vport->dp))
-               return -EINVAL;
-
        netdev->mtu = new_mtu;
        return 0;
 }
@@ -230,7 +222,7 @@ error:
        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);
 
@@ -239,8 +231,6 @@ static int internal_dev_destroy(struct vport *vport)
 
        /* 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)
@@ -273,10 +263,9 @@ static int internal_dev_recv(struct vport *vport, struct sk_buff *skb)
 
 const struct vport_ops internal_vport_ops = {
        .type           = OVS_VPORT_TYPE_INTERNAL,
-       .flags          = VPORT_F_REQUIRED | VPORT_F_GEN_STATS | VPORT_F_FLOW,
+       .flags          = VPORT_F_REQUIRED | VPORT_F_FLOW,
        .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,
@@ -285,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,
-       .get_iflink     = netdev_get_iflink,
        .get_mtu        = netdev_get_mtu,
        .send           = internal_dev_recv,
 };