diff --git a/test_data/of13/exp_port_desc_reply_otu b/test_data/of13/exp_port_desc_reply_otu
new file mode 100644
index 0000000..441d837
--- /dev/null
+++ b/test_data/of13/exp_port_desc_reply_otu
@@ -0,0 +1,87 @@
+#To put this code in exp_port_desc_reply.data
+
+-- 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();
+         
+
+
+
+
+
+
