|
@@ -381,6 +381,24 @@ end:
|
|
return NETDEV_TX_OK;
|
|
return NETDEV_TX_OK;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * batadv_interface_rx - receive ethernet frame on local batman-adv interface
|
|
|
|
+ * @soft_iface: local interface which will receive the ethernet frame
|
|
|
|
+ * @skb: ethernet frame for @soft_iface
|
|
|
|
+ * @recv_if: interface on which the batman-adv packet was received
|
|
|
|
+ * @hdr_size: size of already parsed batman-adv header
|
|
|
|
+ * @orig_node: originator from which the batman-adv packet was sent
|
|
|
|
+ *
|
|
|
|
+ * Sends a ethernet frame to the receive path of the local @soft_iface.
|
|
|
|
+ * skb->data has still point to the batman-adv header with the size @hdr_size.
|
|
|
|
+ * The caller has to have parsed this header already and made sure that at least
|
|
|
|
+ * @hdr_size bytes are still available for pull in @skb.
|
|
|
|
+ *
|
|
|
|
+ * The packet may still get dropped. This can happen when the encapsulated
|
|
|
|
+ * ethernet frame is invalid or contains again an batman-adv packet. Also
|
|
|
|
+ * unicast packets will be dropped directly when it was sent between two
|
|
|
|
+ * isolated clients.
|
|
|
|
+ */
|
|
void batadv_interface_rx(struct net_device *soft_iface,
|
|
void batadv_interface_rx(struct net_device *soft_iface,
|
|
struct sk_buff *skb, struct batadv_hard_iface *recv_if,
|
|
struct sk_buff *skb, struct batadv_hard_iface *recv_if,
|
|
int hdr_size, struct batadv_orig_node *orig_node)
|
|
int hdr_size, struct batadv_orig_node *orig_node)
|