test_class.declarator: probePkt = {
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // src mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // dst mac
  		(byte) 0x89, 0x42, // BSN type
          0x20, 0x00, 0x06, 0x04, 0x00, 0x01, 0x00, 0x00, // BSN header
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // controller id
  		0x00, 0x00, 0x00, 0x03, // sequence id
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // src mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // dst mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, // switch dpid
  		0x00, 0x00, 0x00, 0x01 // port number
      }
test_class.modifier: protected
test_class.original_string: protected byte[] probePkt = {
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // src mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // dst mac
  		(byte) 0x89, 0x42, // BSN type
          0x20, 0x00, 0x06, 0x04, 0x00, 0x01, 0x00, 0x00, // BSN header
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // controller id
  		0x00, 0x00, 0x00, 0x03, // sequence id
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x01, // src mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x04, // dst mac
  		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, // switch dpid
  		0x00, 0x00, 0x00, 0x01 // port number
      };
test_class.type: byte[]
test_class.var_name: probePkt
test_class.file: src/agents/apps/floodlight/floodlight-1.2/src/test/java/net/floodlightcontroller/packet/BSNTest.java
test_class.identifier: BSNTest
test_case.body: @Test
      public void testDeserialize() throws Exception {
          Ethernet pkt = (Ethernet) new Ethernet().deserialize(probePkt, 0, probePkt.length);
          byte[] pktarr = pkt.serialize();
          assertTrue(Arrays.equals(probePkt, pktarr));
  
          Ethernet expected = getProbePacket();
          assertEquals(expected, pkt);
      }
test_case.class_method_signature: BSNTest.testDeserialize()
test_case.full_signature: @Test public void testDeserialize()
test_case.identifier: testDeserialize
test_case.invocations: deserialize serialize assertTrue equals getProbePacket assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDeserialize()
focal_class.declarator: BSN_MAGIC = 0x20000604
focal_class.modifier: public static final
focal_class.original_string: public static final int BSN_MAGIC = 0x20000604;
focal_class.type: int
focal_class.var_name: BSN_MAGIC
focal_class.declarator: BSN_VERSION_CURRENT = 0x0
focal_class.modifier: public static final
focal_class.original_string: public static final short BSN_VERSION_CURRENT = 0x0;
focal_class.type: short
focal_class.var_name: BSN_VERSION_CURRENT
focal_class.declarator: BSN_TYPE_PROBE = 0x1
focal_class.modifier: public static final
focal_class.original_string: public static final short BSN_TYPE_PROBE = 0x1;
focal_class.type: short
focal_class.var_name: BSN_TYPE_PROBE
focal_class.declarator: BSN_TYPE_BDDP  = 0x2
focal_class.modifier: public static final
focal_class.original_string: public static final short BSN_TYPE_BDDP  = 0x2;
focal_class.type: short
focal_class.var_name: BSN_TYPE_BDDP
focal_class.declarator: typeClassMap
focal_class.modifier: public static
focal_class.original_string: public static Map<Short, Class<? extends IPacket>> typeClassMap;
focal_class.type: Map<Short, Class<? extends IPacket>>
focal_class.var_name: typeClassMap
focal_class.declarator: type
focal_class.modifier: protected
focal_class.original_string: protected short type;
focal_class.type: short
focal_class.var_name: type
focal_class.declarator: version
focal_class.modifier: protected
focal_class.original_string: protected short version;
focal_class.type: short
focal_class.var_name: version
focal_class.file: src/agents/apps/floodlight/floodlight-1.2/src/main/java/net/floodlightcontroller/packet/BSN.java
focal_class.identifier: BSN
focal_class.class_method_signature: BSN.BSN()
focal_class.full_signature: public  BSN()
focal_class.identifier: BSN
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  BSN()
focal_class.class_method_signature: BSN.BSN(short type)
focal_class.full_signature: public  BSN(short type)
focal_class.identifier: BSN
focal_class.modifiers: public
focal_class.parameters: (short type)
focal_class.signature:  BSN(short type)
focal_class.class_method_signature: BSN.getType()
focal_class.full_signature: public short getType()
focal_class.identifier: getType
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: short
focal_class.signature: short getType()
focal_class.class_method_signature: BSN.setType(short type)
focal_class.full_signature: public BSN setType(short type)
focal_class.identifier: setType
focal_class.modifiers: public
focal_class.parameters: (short type)
focal_class.return: BSN
focal_class.signature: BSN setType(short type)
focal_class.class_method_signature: BSN.getVersion()
focal_class.full_signature: public short getVersion()
focal_class.identifier: getVersion
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: short
focal_class.signature: short getVersion()
focal_class.class_method_signature: BSN.setVersion(short version)
focal_class.full_signature: public BSN setVersion(short version)
focal_class.identifier: setVersion
focal_class.modifiers: public
focal_class.parameters: (short version)
focal_class.return: BSN
focal_class.signature: BSN setVersion(short version)
focal_class.class_method_signature: BSN.serialize()
focal_class.full_signature: @Override public byte[] serialize()
focal_class.identifier: serialize
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: byte[]
focal_class.signature: byte[] serialize()
focal_class.class_method_signature: BSN.deserialize(byte[] data, int offset, int length)
focal_class.full_signature: @Override public IPacket deserialize(byte[] data, int offset, int length)
focal_class.identifier: deserialize
focal_class.modifiers: @Override public
focal_class.parameters: (byte[] data, int offset, int length)
focal_class.return: IPacket
focal_class.signature: IPacket deserialize(byte[] data, int offset, int length)
focal_class.class_method_signature: BSN.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: BSN.equals(Object obj)
focal_class.full_signature: @Override public boolean equals(Object obj)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object obj)
focal_class.return: boolean
focal_class.signature: boolean equals(Object obj)
focal_class.class_method_signature: BSN.toString()
focal_class.full_signature: public String toString()
focal_class.identifier: toString
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.superclass: extends BasePacket
focal_method.body: @Override
      public IPacket deserialize(byte[] data, int offset, int length)
              throws PacketParsingException {
          ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
  
          int magic = bb.getInt();
          if (magic != BSN_MAGIC) {
              throw new PacketParsingException("Invalid BSN magic " + magic);
          }
  
          this.type = bb.getShort();
          this.version = bb.getShort();
          if (this.version != BSN_VERSION_CURRENT) {
              throw new PacketParsingException(
                      "Invalid BSN packet version " + this.version + ", should be "
                      + BSN_VERSION_CURRENT);
          }
  
          IPacket payload;
          if (typeClassMap.containsKey(this.type)) {
              Class<? extends IPacket> clazz = typeClassMap.get(this.type);
              try {
                  payload = clazz.newInstance();
              } catch (Exception e) {
                  throw new RuntimeException("Error parsing payload for BSN packet" + e);
              }
          } else {
              payload = new Data();
          }
  
          this.payload = payload.deserialize(data, bb.position(), bb.limit() - bb.position());
          this.payload.setParent(this);
  
          return this;
      }
focal_method.class_method_signature: BSN.deserialize(byte[] data, int offset, int length)
focal_method.full_signature: @Override public IPacket deserialize(byte[] data, int offset, int length)
focal_method.identifier: deserialize
focal_method.invocations: wrap getInt getShort getShort containsKey get newInstance deserialize position limit position setParent
focal_method.modifiers: @Override public
focal_method.parameters: (byte[] data, int offset, int length)
focal_method.return: IPacket
focal_method.signature: IPacket deserialize(byte[] data, int offset, int length)