diff --git a/drivers/at86rf231/at86rf231_rx.c b/drivers/at86rf231/at86rf231_rx.c
index 8641de9bf7fee715e735f3b1282a50954e37c2cd..a2bca0fc700cd2df91a295d4f79e1e3ecf23120a 100644
--- a/drivers/at86rf231/at86rf231_rx.c
+++ b/drivers/at86rf231/at86rf231_rx.c
@@ -78,7 +78,7 @@ void at86rf231_rx_handler(void)
                           at86rf231_rx_buffer[rx_buffer_next].length);
 
     /* if packet is no ACK */
-    if (at86rf231_rx_buffer[rx_buffer_next].frame.fcf.frame_type != 2) {
+    if (at86rf231_rx_buffer[rx_buffer_next].frame.fcf.frame_type != IEEE_802154_ACK_FRAME) {
 #ifdef DEBUG_ENABLED
         ieee802154_frame_print_fcf_frame(&at86rf231_rx_buffer[rx_buffer_next].frame);
 #endif
diff --git a/drivers/cc2420/cc2420_rx.c b/drivers/cc2420/cc2420_rx.c
index 4c509e8c96f48d8f1c83f0f8b1092b355af1b8cc..5c091f49531ba81c2d0cbd933b24b084b89ea696 100644
--- a/drivers/cc2420/cc2420_rx.c
+++ b/drivers/cc2420/cc2420_rx.c
@@ -72,7 +72,7 @@ void cc2420_rx_handler(void)
                           cc2420_rx_buffer[rx_buffer_next].length);
 
     /* follow-up to transceiver module if adequate */
-    if (cc2420_rx_buffer[rx_buffer_next].frame.fcf.frame_type != 2) {
+    if (cc2420_rx_buffer[rx_buffer_next].frame.fcf.frame_type != IEEE_802154_ACK_FRAME) {
 #ifdef DEBUG
         ieee802154_frame_print_fcf_frame(&cc2420_rx_buffer[rx_buffer_next].frame);
 #endif
diff --git a/sys/net/include/ieee802154_frame.h b/sys/net/include/ieee802154_frame.h
index 361b15cb4c2de11064b8f0ce1c1a618a301cca1a..cb5e8d4e55e5ae79df22f4ee8977353b4e60b99a 100644
--- a/sys/net/include/ieee802154_frame.h
+++ b/sys/net/include/ieee802154_frame.h
@@ -30,10 +30,12 @@
 /* ...and FCS*/
 #define IEEE_802154_FCS_LEN             (2)
 
-#define IEEE_802154_BEACON_FRAME        (0)
-#define IEEE_802154_DATA_FRAME          (1)
-#define IEEE_802154_ACK_FRAME           (2)
-#define IEEE_802154_MAC_CMD_FRAME       (3)
+typedef enum __attribute__((packed)) {
+    IEEE_802154_BEACON_FRAME    = 0,
+    IEEE_802154_DATA_FRAME      = 1,
+    IEEE_802154_ACK_FRAME       = 2,
+    IEEE_802154_MAC_CMD_FRAME   = 3
+} ieee802154_frame_type_t;
 
 #define IEEE_802154_SHORT_ADDR_M        (2)
 #define IEEE_802154_LONG_ADDR_M         (3)
@@ -66,7 +68,7 @@
 #define LETOHS(a)   HTOLES(a)
 
 typedef struct __attribute__((packed)) {
-    uint8_t frame_type;
+    ieee802154_frame_type_t frame_type;
     uint8_t sec_enb;
     uint8_t frame_pend;
     uint8_t ack_req;
diff --git a/sys/net/link_layer/net_if/net_if.c b/sys/net/link_layer/net_if/net_if.c
index 5fbb5af35a7fbd2b33ed9598584069a87c43286a..26b48e062ea7a4ea9a4a99a9372fe80c37f59779 100644
--- a/sys/net/link_layer/net_if/net_if.c
+++ b/sys/net/link_layer/net_if/net_if.c
@@ -331,7 +331,7 @@ int net_if_send_packet(int if_id, uint16_t target, const void *payload,
         p.frame.fcf.dest_addr_m = IEEE_802154_SHORT_ADDR_M;
         p.frame.fcf.ack_req = 0;
         p.frame.fcf.sec_enb = 0;
-        p.frame.fcf.frame_type = 1;
+        p.frame.fcf.frame_type = IEEE_802154_DATA_FRAME;
         p.frame.fcf.frame_pend = 0;
 
         p.frame.dest_pan_id = net_if_get_pan_id(if_id);
@@ -375,7 +375,7 @@ int net_if_send_packet_long(int if_id, net_if_eui64_t *target,
         p.frame.fcf.dest_addr_m = IEEE_802154_LONG_ADDR_M;
         p.frame.fcf.ack_req = 0;
         p.frame.fcf.sec_enb = 0;
-        p.frame.fcf.frame_type = 1;
+        p.frame.fcf.frame_type = IEEE_802154_DATA_FRAME;
         p.frame.fcf.frame_pend = 0;
         p.frame.dest_pan_id = net_if_get_pan_id(if_id);
         memcpy(p.frame.dest_addr, target, 8);