

@classmethod
def parser(cls, buf):
    opt_parse_list = []
    offset = struct.calcsize(cls._MAGIC_COOKIE_UNPACK_STR)
    magic_cookie = struct.unpack_from(cls._MAGIC_COOKIE_UNPACK_STR, buf)[0]
    while (len(buf) > offset):
        opt_buf = buf[offset:]
        opt = option.parser(opt_buf)
        if (opt is None):
            break
        opt_parse_list.append(opt)
        offset += (opt.length + cls._OPT_TAG_LEN_BYTE)
    return cls(opt_parse_list, len(buf), addrconv.ipv4.bin_to_text(magic_cookie))

dataset/ETHPy150Open osrg/ryu/ryu/lib/packet/dhcp.py options.parser/original