Skip to content

Commit

Permalink
mac802154: tx: add warning if MTU exceeds
Browse files Browse the repository at this point in the history
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: Alexander Aring <[email protected]>
Signed-off-by: Marcel Holtmann <[email protected]>
  • Loading branch information
alexaring authored and holtmann committed Sep 22, 2015
1 parent 87a93e4 commit 02c7b69
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions net/mac802154/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 02c7b69

Please sign in to comment.