if ((atomic_read(&bat_priv->aggregated_ogms)) &&
            (packet_len < MAX_AGGREGATION_BYTES))
                forw_packet_aggr->skb = dev_alloc_skb(MAX_AGGREGATION_BYTES +
-                                                     sizeof(struct ethhdr));
+                                                     ETH_HLEN);
        else
-               forw_packet_aggr->skb = dev_alloc_skb(packet_len +
-                                                     sizeof(struct ethhdr));
+               forw_packet_aggr->skb = dev_alloc_skb(packet_len + ETH_HLEN);
 
        if (!forw_packet_aggr->skb) {
                if (!own_packet)
                kfree(forw_packet_aggr);
                goto out;
        }
-       skb_reserve(forw_packet_aggr->skb, sizeof(struct ethhdr));
+       skb_reserve(forw_packet_aggr->skb, ETH_HLEN);
 
        INIT_HLIST_NODE(&forw_packet_aggr->list);
 
 
                goto out;
 
        ethhdr = (struct ethhdr *)skb->data;
-       hw_src = (uint8_t *)ethhdr +
-                sizeof(struct ethhdr) +
-                sizeof(struct arphdr);
+       hw_src = (uint8_t *)ethhdr + ETH_HLEN + sizeof(struct arphdr);
 
        /* now we pretend that the client would have sent this ... */
        switch (claimtype) {
        skb_reset_mac_header(skb);
        skb->protocol = eth_type_trans(skb, soft_iface);
        bat_priv->stats.rx_packets++;
-       bat_priv->stats.rx_bytes += skb->len + sizeof(struct ethhdr);
+       bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
        soft_iface->last_rx = jiffies;
 
        netif_rx(skb);
                headlen = sizeof(*vhdr);
        } else {
                proto = ntohs(ethhdr->h_proto);
-               headlen = sizeof(*ethhdr);
+               headlen = ETH_HLEN;
        }
 
        if (proto != ETH_P_ARP)
                return 0;
 
        /* first, find out the vid. */
-       if (!pskb_may_pull(skb, hdr_size + sizeof(struct ethhdr)))
+       if (!pskb_may_pull(skb, hdr_size + ETH_HLEN))
                return 0;
 
        ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
 
                goto err_free;
 
        /* expect a valid ethernet header here. */
-       if (unlikely(skb->mac_len != sizeof(struct ethhdr) ||
-                    !skb_mac_header(skb)))
+       if (unlikely(skb->mac_len != ETH_HLEN || !skb_mac_header(skb)))
                goto err_free;
 
        if (!hard_iface->soft_iface)
 
        if (len >= sizeof(struct icmp_packet_rr))
                packet_len = sizeof(struct icmp_packet_rr);
 
-       skb = dev_alloc_skb(packet_len + sizeof(struct ethhdr));
+       skb = dev_alloc_skb(packet_len + ETH_HLEN);
        if (!skb) {
                len = -ENOMEM;
                goto out;
        }
 
-       skb_reserve(skb, sizeof(struct ethhdr));
+       skb_reserve(skb, ETH_HLEN);
        icmp_packet = (struct icmp_packet_rr *)skb_put(skb, packet_len);
 
        if (copy_from_user(icmp_packet, buff, packet_len)) {
 
                goto out;
 
        /* create a copy of the skb, if needed, to modify it. */
-       if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
+       if (skb_cow(skb, ETH_HLEN) < 0)
                goto out;
 
        icmp_packet = (struct icmp_packet_rr *)skb->data;
                goto out;
 
        /* create a copy of the skb, if needed, to modify it. */
-       if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
+       if (skb_cow(skb, ETH_HLEN) < 0)
                goto out;
 
        icmp_packet = (struct icmp_packet *)skb->data;
                goto out;
 
        /* create a copy of the skb, if needed, to modify it. */
-       if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
+       if (skb_cow(skb, ETH_HLEN) < 0)
                goto out;
 
        icmp_packet = (struct icmp_packet_rr *)skb->data;
                goto out;
 
        /* create a copy of the skb, if needed, to modify it. */
-       if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
+       if (skb_cow(skb, ETH_HLEN) < 0)
                goto out;
 
        unicast_packet = (struct unicast_packet *)skb->data;
 
        }
 
        /* push to the ethernet header. */
-       if (my_skb_head_push(skb, sizeof(*ethhdr)) < 0)
+       if (my_skb_head_push(skb, ETH_HLEN) < 0)
                goto send_skb_err;
 
        skb_reset_mac_header(skb);
 
 /*     skb->ip_summed = CHECKSUM_UNNECESSARY;*/
 
        bat_priv->stats.rx_packets++;
-       bat_priv->stats.rx_bytes += skb->len + sizeof(struct ethhdr);
+       bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
 
        soft_iface->last_rx = jiffies;
 
 
 #include "packet.h"
 #include "bitarray.h"
 
-#define BAT_HEADER_LEN (sizeof(struct ethhdr) + \
+#define BAT_HEADER_LEN (ETH_HLEN + \
        ((sizeof(struct unicast_packet) > sizeof(struct bcast_packet) ? \
         sizeof(struct unicast_packet) : \
         sizeof(struct bcast_packet))))
 
                return NULL;
 
        info->skb_packet = dev_alloc_skb(sizeof(*packet) + vis_info_len +
-                                        sizeof(struct ethhdr));
+                                        ETH_HLEN);
        if (!info->skb_packet) {
                kfree(info);
                return NULL;
        }
-       skb_reserve(info->skb_packet, sizeof(struct ethhdr));
+       skb_reserve(info->skb_packet, ETH_HLEN);
        packet = (struct vis_packet *)skb_put(info->skb_packet, sizeof(*packet)
                                              + vis_info_len);
 
 
        bat_priv->my_vis_info->skb_packet = dev_alloc_skb(sizeof(*packet) +
                                                          MAX_VIS_PACKET_SIZE +
-                                                        sizeof(struct ethhdr));
+                                                         ETH_HLEN);
        if (!bat_priv->my_vis_info->skb_packet)
                goto free_info;
 
-       skb_reserve(bat_priv->my_vis_info->skb_packet, sizeof(struct ethhdr));
+       skb_reserve(bat_priv->my_vis_info->skb_packet, ETH_HLEN);
        packet = (struct vis_packet *)skb_put(bat_priv->my_vis_info->skb_packet,
                                              sizeof(*packet));