batman-adv: update copyright years for 2016
[deliverable/linux.git] / net / batman-adv / soft-interface.c
index a2fc843c22432e790980fa15653cf95e6c60b384..4bf35b8c3d238ef51232276678a439e67734f0b9 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2015 B.A.T.M.A.N. contributors:
+/* Copyright (C) 2007-201 B.A.T.M.A.N. contributors:
  *
  * Marek Lindner, Simon Wunderlich
  *
@@ -131,7 +131,7 @@ static int batadv_interface_set_mac_addr(struct net_device *dev, void *p)
        struct batadv_priv *bat_priv = netdev_priv(dev);
        struct batadv_softif_vlan *vlan;
        struct sockaddr *addr = p;
-       uint8_t old_addr[ETH_ALEN];
+       u8 old_addr[ETH_ALEN];
 
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
@@ -186,22 +186,23 @@ static int batadv_interface_tx(struct sk_buff *skb,
        struct batadv_hard_iface *primary_if = NULL;
        struct batadv_bcast_packet *bcast_packet;
        __be16 ethertype = htons(ETH_P_BATMAN);
-       static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
-                                                  0x00, 0x00};
-       static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
-                                                   0x00, 0x00};
+       static const u8 stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
+                                             0x00, 0x00};
+       static const u8 ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
+                                              0x00, 0x00};
        enum batadv_dhcp_recipient dhcp_rcp = BATADV_DHCP_NO;
-       uint8_t *dst_hint = NULL, chaddr[ETH_ALEN];
+       u8 *dst_hint = NULL, chaddr[ETH_ALEN];
        struct vlan_ethhdr *vhdr;
        unsigned int header_len = 0;
        int data_len = skb->len, ret;
        unsigned long brd_delay = 1;
        bool do_bcast = false, client_added;
        unsigned short vid;
-       uint32_t seqno;
+       u32 seqno;
        int gw_mode;
        enum batadv_forw_mode forw_mode;
        struct batadv_orig_node *mcast_single_orig = NULL;
+       int network_offset = ETH_HLEN;
 
        if (atomic_read(&bat_priv->mesh_state) != BATADV_MESH_ACTIVE)
                goto dropped;
@@ -214,14 +215,18 @@ static int batadv_interface_tx(struct sk_buff *skb,
        case ETH_P_8021Q:
                vhdr = vlan_eth_hdr(skb);
 
-               if (vhdr->h_vlan_encapsulated_proto != ethertype)
+               if (vhdr->h_vlan_encapsulated_proto != ethertype) {
+                       network_offset += VLAN_HLEN;
                        break;
+               }
 
                /* fall through */
        case ETH_P_BATMAN:
                goto dropped;
        }
 
+       skb_set_network_header(skb, network_offset);
+
        if (batadv_bla_tx(bat_priv, skb, vid))
                goto dropped;
 
@@ -475,7 +480,7 @@ out:
 /**
  * batadv_softif_vlan_free_ref - decrease the vlan object refcounter and
  *  possibly free it
- * @softif_vlan: the vlan object to release
+ * @vlan: the vlan object to release
  */
 void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *vlan)
 {
@@ -496,7 +501,7 @@ void batadv_softif_vlan_free_ref(struct batadv_softif_vlan *vlan)
  * @bat_priv: the bat priv with all the soft interface information
  * @vid: the identifier of the vlan object to retrieve
  *
- * Returns the private data of the vlan matching the vid passed as argument or
+ * Return: the private data of the vlan matching the vid passed as argument or
  * NULL otherwise. The refcounter of the returned object is incremented by 1.
  */
 struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
@@ -525,7 +530,7 @@ struct batadv_softif_vlan *batadv_softif_vlan_get(struct batadv_priv *bat_priv,
  * @bat_priv: the bat priv with all the soft interface information
  * @vid: the VLAN identifier
  *
- * Returns 0 on success, a negative error otherwise.
+ * Return: 0 on success, a negative error otherwise.
  */
 int batadv_softif_create_vlan(struct batadv_priv *bat_priv, unsigned short vid)
 {
@@ -589,12 +594,13 @@ static void batadv_softif_destroy_vlan(struct batadv_priv *bat_priv,
 /**
  * batadv_interface_add_vid - ndo_add_vid API implementation
  * @dev: the netdev of the mesh interface
+ * @proto: protocol of the the vlan id
  * @vid: identifier of the new vlan
  *
  * Set up all the internal structures for handling the new vlan on top of the
  * mesh interface
  *
- * Returns 0 on success or a negative error code in case of failure.
+ * Return: 0 on success or a negative error code in case of failure.
  */
 static int batadv_interface_add_vid(struct net_device *dev, __be16 proto,
                                    unsigned short vid)
@@ -646,12 +652,13 @@ static int batadv_interface_add_vid(struct net_device *dev, __be16 proto,
 /**
  * batadv_interface_kill_vid - ndo_kill_vid API implementation
  * @dev: the netdev of the mesh interface
+ * @proto: protocol of the the vlan id
  * @vid: identifier of the deleted vlan
  *
  * Destroy all the internal structures used to handle the vlan identified by vid
  * on top of the mesh interface
  *
- * Returns 0 on success, -EINVAL if the specified prototype is not ETH_P_8021Q
+ * Return: 0 on success, -EINVAL if the specified prototype is not ETH_P_8021Q
  * or -ENOENT if the specified vlan id wasn't registered.
  */
 static int batadv_interface_kill_vid(struct net_device *dev, __be16 proto,
@@ -740,14 +747,14 @@ static void batadv_softif_destroy_finish(struct work_struct *work)
  * batadv_softif_init_late - late stage initialization of soft interface
  * @dev: registered network device to modify
  *
- * Returns error code on failures
+ * Return: error code on failures
  */
 static int batadv_softif_init_late(struct net_device *dev)
 {
        struct batadv_priv *bat_priv;
-       uint32_t random_seqno;
+       u32 random_seqno;
        int ret;
-       size_t cnt_len = sizeof(uint64_t) * BATADV_CNT_NUM;
+       size_t cnt_len = sizeof(u64) * BATADV_CNT_NUM;
 
        batadv_set_lockdep_class(dev);
 
@@ -758,7 +765,7 @@ static int batadv_softif_init_late(struct net_device *dev)
        /* batadv_interface_stats() needs to be available as soon as
         * register_netdevice() has been called
         */
-       bat_priv->bat_counters = __alloc_percpu(cnt_len, __alignof__(uint64_t));
+       bat_priv->bat_counters = __alloc_percpu(cnt_len, __alignof__(u64));
        if (!bat_priv->bat_counters)
                return -ENOMEM;
 
@@ -842,7 +849,7 @@ free_bat_counters:
  * @dev: batadv_soft_interface used as master interface
  * @slave_dev: net_device which should become the slave interface
  *
- * Return 0 if successful or error otherwise.
+ * Return: 0 if successful or error otherwise.
  */
 static int batadv_softif_slave_add(struct net_device *dev,
                                   struct net_device *slave_dev)
@@ -867,7 +874,7 @@ out:
  * @dev: batadv_soft_interface used as master interface
  * @slave_dev: net_device which should be removed from the master interface
  *
- * Return 0 if successful or error otherwise.
+ * Return: 0 if successful or error otherwise.
  */
 static int batadv_softif_slave_del(struct net_device *dev,
                                   struct net_device *slave_dev)
@@ -936,14 +943,12 @@ static void batadv_softif_init_early(struct net_device *dev)
        dev->netdev_ops = &batadv_netdev_ops;
        dev->destructor = batadv_softif_free;
        dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
-       dev->tx_queue_len = 0;
+       dev->priv_flags |= IFF_NO_QUEUE;
 
        /* can't call min_mtu, because the needed variables
         * have not been initialized yet
         */
        dev->mtu = ETH_DATA_LEN;
-       /* reserve more space in the skbuff for our header */
-       dev->hard_header_len = batadv_max_header_len();
 
        /* generate random address */
        eth_hw_addr_random(dev);
@@ -1112,8 +1117,7 @@ static const struct {
 #endif
 };
 
-static void batadv_get_strings(struct net_device *dev, uint32_t stringset,
-                              uint8_t *data)
+static void batadv_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 {
        if (stringset == ETH_SS_STATS)
                memcpy(data, batadv_counters_strings,
@@ -1121,8 +1125,7 @@ static void batadv_get_strings(struct net_device *dev, uint32_t stringset,
 }
 
 static void batadv_get_ethtool_stats(struct net_device *dev,
-                                    struct ethtool_stats *stats,
-                                    uint64_t *data)
+                                    struct ethtool_stats *stats, u64 *data)
 {
        struct batadv_priv *bat_priv = netdev_priv(dev);
        int i;
This page took 0.028887 seconds and 5 git commands to generate.