diff --git a/drivers/cc2420/cc2420_netdev.c b/drivers/cc2420/cc2420_netdev.c index fe1f42ccd300662f1445111ae7a9d577c140d985..20f741e723bcd2729633fcab5643be0e17016086 100644 --- a/drivers/cc2420/cc2420_netdev.c +++ b/drivers/cc2420/cc2420_netdev.c @@ -38,6 +38,7 @@ #define ENABLE_DEBUG (0) #include "debug.h" +#define _MAX_MHR_OVERHEAD (25) static int _send(netdev_t *netdev, const iolist_t *iolist); static int _recv(netdev_t *netdev, void *buf, size_t len, void *info); @@ -187,6 +188,11 @@ static int _get(netdev_t *netdev, netopt_t opt, void *val, size_t max_len) cc2420_get_addr_long(dev, val); return 8; + case NETOPT_MAX_PACKET_SIZE: + assert(max_len >= sizeof(int16_t)); + *((uint16_t *)val) = CC2420_PKT_MAXLEN - _MAX_MHR_OVERHEAD; + return sizeof(int16_t); + case NETOPT_NID: assert(max_len >= sizeof(uint16_t)); return w_u16(val, cc2420_get_pan(dev));