diff --git a/test_data/of13/exp_port_desc_reply.data b/test_data/of13/exp_port_desc_reply.data
new file mode 100644
index 0000000..df1eeec
--- /dev/null
+++ b/test_data/of13/exp_port_desc_reply.data
@@ -0,0 +1,85 @@
+-- binary
+04 13 # version, type
+00 58 # length
+12 34 56 78 # xid
+ff ff # stats_type
+00 00 # flags
+00 00 00 00 # pad
+FF 00 00 07 # experimenter
+00 00 00 01 # subtype
+# entries[0]
+00 00 00 01 # port
+00 40 # length - ????????
+00 00 # pad
+00 00 00 00 00 00 # entries[0].hw_addr
+00 00 # pad
+69 6e 74 65 72 66 61 63 65 31 32 33 34 35 36 37 # entries[0].name
+00 00 00 60 # entries[0].config
+00 00 00 04 # entries[0].state
+# properties[0]
+00 02 # entries[0].properties[0].type 
+00 18 # entries[0].properties[0].length  ???????
+0C # port_signal_type OMSn = 2,OCH  = 5,OTU2 = 12(oduclt-10),OTU4 = 14(oduclt-100)
+00 #reserved
+00 00 #pad
+# features[0]
+00 02
+00 10 # length - ????????
+00 00 00 00
+# layeres[0]
+03 # layer class (PORT=1,OCH=2,ODU=3,DUCLT=4)
+01 # signal_type;    /*OFP(OTP/OCH/ODU/ODUCL)T_*/
+06 #(OTS_OMS=1,OMS_OCH=2,OPS_OCHr=3,OPSM_OTUk=4,OCH_OTUk=5,ODUk_ODUij=6,ODUk_ODUj21=7,
+   #ODUkh_ODUj21=8,ODU0_CBRx=9,ODUk_CBRx=10,ODUk_CBRxg=11,ODUk_RSn=12,ODUk_ATM=13,ODUk_ETH=14,ODUkh_ETH=15,ODUk_ETHPPOS=16
+00 00 00 00 00
+
+-- python
+ofp.message.exp_port_desc_stats_reply(
+    xid=0x12345678,
+    flags=0,
+    entries=[
+        ofp.exp_port_desc(
+            port_no=1,
+            hw_addr=[0,0,0,0,0,0],
+            name="interface1234567",
+            config=0x60,
+            state=0x03,
+            properties=[
+                ofp.exp_port_desc_prop.ethernet(
+                    curr=0x70,
+                    max_speed=0x80)])])
+
+
+-- java
+builder
+        .setXid(0x12345678)
+        .setFlags(ImmutableSet.<OFStatsReplyFlags>of())
+        .setEntries(ImmutableList.of(
+                factory.buildExpPort()
+                   .setPortNo(OFPort.of(1))
+                   .setHwAddr(MacAddress.of("00:00:00:00:00:00"))
+                   .setName("interface1234567")
+                   .setConfig(Sets.immutableEnumSet(OFPortConfig.NO_FWD, OFPortConfig.NO_PACKET_IN))
+                   .setState(Sets.immutableEnumSet(OFPortState.LIVE))
+                   .setProperties(ImmutableList.of(
+				  factory.buildExpPortDescPropOpticalTransport()
+                                  .setPortSignalType(OFPortOpticalTransportSignalType.OTU2)
+   				  .setFeatures(ImmutableList.of(   
+                                               factory.buildExpPortOpticalTransportLayerStack()
+                                              .setValue(ImmutableList.of(
+						         factory.buildExpPortOpticalTransportLayerEntry()
+                                                        .setLayerClass(OFPortOpticalTransportLayerClass.ODU)
+                                                        .setSignalType((short)1)
+                                                        .setAdaptation(OFAdaptationsType.ODUK_ODUIJ)
+                                                        .build()))
+                                              .build()))
+		                   .build()))
+                     .build()))
+          .build();
+         
+
+
+
+
+
+
