@Override
    public OFOxmBsnUdf1Masked readFrom(ChannelBuffer bb) throws OFParseError {
      // fixed value property typeLen == 0x31308L
      int typeLen = bb.readInt();
      if (typeLen != 0x31308)
        throw new OFParseError("Wrong typeLen: Expected=0x31308L(0x31308L), got=" + typeLen);
      UDF value = UDF.read4Bytes(bb);
      UDF mask = UDF.read4Bytes(bb);

      OFOxmBsnUdf1MaskedVer12 oxmBsnUdf1MaskedVer12 = new OFOxmBsnUdf1MaskedVer12(value, mask);
      if (logger.isTraceEnabled()) logger.trace("readFrom - read={}", oxmBsnUdf1MaskedVer12);
      return oxmBsnUdf1MaskedVer12;
    }
    @Override
    public OFOxmBsnUdf1 readFrom(ByteBuf bb) throws OFParseError {
      // fixed value property typeLen == 0x31204L
      int typeLen = bb.readInt();
      if (typeLen != 0x31204)
        throw new OFParseError("Wrong typeLen: Expected=0x31204L(0x31204L), got=" + typeLen);
      UDF value = UDF.read4Bytes(bb);

      OFOxmBsnUdf1Ver12 oxmBsnUdf1Ver12 = new OFOxmBsnUdf1Ver12(value);
      if (logger.isTraceEnabled()) logger.trace("readFrom - read={}", oxmBsnUdf1Ver12);
      return oxmBsnUdf1Ver12;
    }