Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43a67304 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

appletalk: convert ipddp to net_device_ops



Use internal element in network device for stats as well.

Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 03b35ccb
Loading
Loading
Loading
Loading
+11 −14
Original line number Diff line number Diff line
@@ -48,12 +48,18 @@ static int ipddp_mode = IPDDP_DECAP;

/* Index to functions, as function prototypes. */
static int ipddp_xmit(struct sk_buff *skb, struct net_device *dev);
static struct net_device_stats *ipddp_get_stats(struct net_device *dev);
static int ipddp_create(struct ipddp_route *new_rt);
static int ipddp_delete(struct ipddp_route *rt);
static struct ipddp_route* ipddp_find_route(struct ipddp_route *rt);
static int ipddp_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);

static const struct net_device_ops ipddp_netdev_ops = {
	.ndo_start_xmit		= ipddp_xmit,
	.ndo_do_ioctl   	= ipddp_ioctl,
	.ndo_change_mtu		= eth_change_mtu,
	.ndo_set_mac_address 	= eth_mac_addr,
	.ndo_validate_addr	= eth_validate_addr,
};

static struct net_device * __init ipddp_init(void)
{
@@ -61,7 +67,7 @@ static struct net_device * __init ipddp_init(void)
	struct net_device *dev;
	int err;

	dev = alloc_etherdev(sizeof(struct net_device_stats));
	dev = alloc_etherdev(0);
	if (!dev)
		return ERR_PTR(-ENOMEM);

@@ -71,9 +77,7 @@ static struct net_device * __init ipddp_init(void)
                printk(version);

	/* Initalize the device structure. */
        dev->hard_start_xmit = ipddp_xmit;
        dev->get_stats      = ipddp_get_stats;
        dev->do_ioctl       = ipddp_ioctl;
	dev->netdev_ops = &ipddp_netdev_ops;

        dev->type = ARPHRD_IPDDP;       	/* IP over DDP tunnel */
        dev->mtu = 585;
@@ -103,13 +107,6 @@ static struct net_device * __init ipddp_init(void)
        return dev;
}

/*
 * Get the current statistics. This may be called with the card open or closed.
 */
static struct net_device_stats *ipddp_get_stats(struct net_device *dev)
{
	return netdev_priv(dev);
}

/*
 * Transmit LLAP/ELAP frame using aarp_send_ddp.
@@ -170,8 +167,8 @@ static int ipddp_xmit(struct sk_buff *skb, struct net_device *dev)

        skb->protocol = htons(ETH_P_ATALK);     /* Protocol has changed */

	((struct net_device_stats *) netdev_priv(dev))->tx_packets++;
	((struct net_device_stats *) netdev_priv(dev))->tx_bytes += skb->len;
	dev->stats.tx_packets++;
	dev->stats.tx_bytes += skb->len;

        if(aarp_send_ddp(rt->dev, skb, &rt->at, NULL) < 0)
                dev_kfree_skb(skb);