diff --git a/simulator/extctrl2014.py b/simulator/extctrl2014.py
index 56e5631bf53d5cf9220e98fda348ba8985212208..28e7029a21484146b3b818a888dc4cae87539acd 100644
--- a/simulator/extctrl2014.py
+++ b/simulator/extctrl2014.py
@@ -156,15 +156,16 @@ class Packet:
         self.destination = buf.read(6)
         self.source = buf.read(6)
         self.eth_type = buf.read(2)
-        flags = buf.decode_byte()
-        self.flags = flags & flag_MASK
-        self.kind = flags & kind_MASK
-        self.channel = buf.decode_packed32()
-        self.cookie = buf.decode_uint32()
-        self.index = buf.decode_uint32()
-        self.frag_num = buf.decode_packed32()
-        frag_length = buf.decode_packed32()
-        self.data = buf.read(frag_length)
+        if self.eth_type == 'EX':
+            flags = buf.decode_byte()
+            self.flags = flags & flag_MASK
+            self.kind = flags & kind_MASK
+            self.channel = buf.decode_packed32()
+            self.cookie = buf.decode_uint32()
+            self.index = buf.decode_uint32()
+            self.frag_num = buf.decode_packed32()
+            frag_length = buf.decode_packed32()
+            self.data = buf.read(frag_length)
 
     def join(self, other):
         if self.destination != other.destination: