Commit 02c7b692 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

mac802154: tx: add warning if MTU exceeds



Sending over AF_PACKET RAW sockets we can sending frames which exceeds
MTU size. To handling it correct we need to change things in AF_PACKET
which knows on RAW sockets an additional FCS is set by hardware or
mac802154 transmit functionality.

Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 87a93e4e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -71,6 +71,17 @@ ieee802154_tx(struct ieee802154_local *local, struct sk_buff *skb)
	struct net_device *dev = skb->dev;
	int ret;

	/* This check is for AF_PACKET RAW socket only, which doesn't
	 * know about the FCS which is set here or by hardware. otherwise
	 * it should not occur in any case!
	 *
	 * TODO: This should be handled in AF_PACKET and return -EMSGSIZE.
	 */
	if (skb->len > IEEE802154_MTU - IEEE802154_FCS_LEN) {
		netdev_warn(dev, "Frame len above MTU limit. Dropped.\n");
		goto err_tx;
	}

	if (!(local->hw.flags & IEEE802154_HW_TX_OMIT_CKSUM)) {
		u16 crc = crc_ccitt(0, skb->data, skb->len);