Commit 3dca02af authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller

ip6tnl: Use on-device stats instead of private ones.

This tunnel uses its own private structure and requires separate
patch to switch from private stats to on-device ones.
Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f56dd017
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
struct ip6_tnl { struct ip6_tnl {
struct ip6_tnl *next; /* next tunnel in list */ struct ip6_tnl *next; /* next tunnel in list */
struct net_device *dev; /* virtual device associated with tunnel */ struct net_device *dev; /* virtual device associated with tunnel */
struct net_device_stats stat; /* statistics for tunnel device */
int recursion; /* depth of hard_start_xmit recursion */ int recursion; /* depth of hard_start_xmit recursion */
struct ip6_tnl_parm parms; /* tunnel configuration parameters */ struct ip6_tnl_parm parms; /* tunnel configuration parameters */
struct flowi fl; /* flowi template for xmit */ struct flowi fl; /* flowi template for xmit */
......
...@@ -711,7 +711,7 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol, ...@@ -711,7 +711,7 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol,
} }
if (!ip6_tnl_rcv_ctl(t)) { if (!ip6_tnl_rcv_ctl(t)) {
t->stat.rx_dropped++; t->dev->stats.rx_dropped++;
read_unlock(&ip6_tnl_lock); read_unlock(&ip6_tnl_lock);
goto discard; goto discard;
} }
...@@ -728,8 +728,8 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol, ...@@ -728,8 +728,8 @@ static int ip6_tnl_rcv(struct sk_buff *skb, __u16 protocol,
dscp_ecn_decapsulate(t, ipv6h, skb); dscp_ecn_decapsulate(t, ipv6h, skb);
t->stat.rx_packets++; t->dev->stats.rx_packets++;
t->stat.rx_bytes += skb->len; t->dev->stats.rx_bytes += skb->len;
netif_rx(skb); netif_rx(skb);
read_unlock(&ip6_tnl_lock); read_unlock(&ip6_tnl_lock);
return 0; return 0;
...@@ -849,7 +849,7 @@ static int ip6_tnl_xmit2(struct sk_buff *skb, ...@@ -849,7 +849,7 @@ static int ip6_tnl_xmit2(struct sk_buff *skb,
__u32 *pmtu) __u32 *pmtu)
{ {
struct ip6_tnl *t = netdev_priv(dev); struct ip6_tnl *t = netdev_priv(dev);
struct net_device_stats *stats = &t->stat; struct net_device_stats *stats = &t->dev->stats;
struct ipv6hdr *ipv6h = ipv6_hdr(skb); struct ipv6hdr *ipv6h = ipv6_hdr(skb);
struct ipv6_tel_txoption opt; struct ipv6_tel_txoption opt;
struct dst_entry *dst; struct dst_entry *dst;
...@@ -1043,11 +1043,11 @@ static int ...@@ -1043,11 +1043,11 @@ static int
ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct ip6_tnl *t = netdev_priv(dev); struct ip6_tnl *t = netdev_priv(dev);
struct net_device_stats *stats = &t->stat; struct net_device_stats *stats = &t->dev->stats;
int ret; int ret;
if (t->recursion++) { if (t->recursion++) {
t->stat.collisions++; stats->collisions++;
goto tx_err; goto tx_err;
} }
...@@ -1288,19 +1288,6 @@ ip6_tnl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) ...@@ -1288,19 +1288,6 @@ ip6_tnl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
return err; return err;
} }
/**
* ip6_tnl_get_stats - return the stats for tunnel device
* @dev: virtual device associated with tunnel
*
* Return: stats for device
**/
static struct net_device_stats *
ip6_tnl_get_stats(struct net_device *dev)
{
return &(((struct ip6_tnl *)netdev_priv(dev))->stat);
}
/** /**
* ip6_tnl_change_mtu - change mtu manually for tunnel device * ip6_tnl_change_mtu - change mtu manually for tunnel device
* @dev: virtual device associated with tunnel * @dev: virtual device associated with tunnel
...@@ -1334,7 +1321,6 @@ static void ip6_tnl_dev_setup(struct net_device *dev) ...@@ -1334,7 +1321,6 @@ static void ip6_tnl_dev_setup(struct net_device *dev)
dev->uninit = ip6_tnl_dev_uninit; dev->uninit = ip6_tnl_dev_uninit;
dev->destructor = free_netdev; dev->destructor = free_netdev;
dev->hard_start_xmit = ip6_tnl_xmit; dev->hard_start_xmit = ip6_tnl_xmit;
dev->get_stats = ip6_tnl_get_stats;
dev->do_ioctl = ip6_tnl_ioctl; dev->do_ioctl = ip6_tnl_ioctl;
dev->change_mtu = ip6_tnl_change_mtu; dev->change_mtu = ip6_tnl_change_mtu;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment