def METHOD_NAME(self, e2):
    if e2[0:4] != self.HEAD_INFO:
        raise FantlvException("Fan tlv head info error,not fan tlv type", -10)
    ret = []
    self.VERSION = ord(e2[0])
    self.FLAG = ord(e2[1])
    self.HW_VER = ord(e2[2])
    self.TYPE = ord(e2[3])
    self.TLV_LEN = (ord(e2[4]) << 8) | ord(e2[5])
    tlv_index = self._FAN_TLV_HDR_LEN
    tlv_end = self._FAN_TLV_HDR_LEN + self.TLV_LEN
    # check sum
    if len(e2) < self._FAN_TLV_HDR_LEN + self.TLV_LEN + 2:
        raise FantlvException("Fan tlv eeprom len error!", -2)
    sumcrc = fan_tlv.fancrc(e2[0:self._FAN_TLV_HDR_LEN + self.TLV_LEN])
    readcrc = ord(e2[self._FAN_TLV_HDR_LEN + self.TLV_LEN]
                  ) << 8 | ord(e2[self._FAN_TLV_HDR_LEN + self.TLV_LEN + 1])
    if sumcrc != readcrc:
        raise FantlvException("Fan tlv eeprom checksum error!", -1)
    else:
        self._dstatus = 0
    while (tlv_index + 2) < len(e2) and tlv_index < tlv_end:
        s = self.decoder(
            e2[tlv_index:tlv_index + 2 + ord(e2[tlv_index + 1])])
        tlv_index += ord(e2[tlv_index + 1]) + 2
        ret.append(s)
    return ret