This slowed down the decoder. Improved from 16s to 13s for 1000 dump/details
messages.
Change-Id: Iae78136b020cdd9344f3b2170ce426d0f074b6e6
Signed-off-by: Ole Troan <ot@cisco.com>
.format(type, base_types[type]))
def pack(self, data, kwargs=None):
.format(type, base_types[type]))
def pack(self, data, kwargs=None):
- logger.debug("Data: {} Format: {}".format(data, self.packer.format))
return self.packer.pack(data)
def unpack(self, data, offset, result=None):
return self.packer.pack(data)
def unpack(self, data, offset, result=None):
- logger.debug("@ {} Format: {}".format(offset, self.packer.format))
return self.packer.unpack_from(data, offset)[0]
return self.packer.unpack_from(data, offset)[0]
def pack(self, list, kwargs):
"""Packs a fixed length bytestring. Left-pads with zeros
if input data is too short."""
def pack(self, list, kwargs):
"""Packs a fixed length bytestring. Left-pads with zeros
if input data is too short."""
- logger.debug("Data: {}".format(list))
-
if len(list) > self.num:
raise ValueError('Fixed list length error for "{}", got: {}'
' expected: {}'
if len(list) > self.num:
raise ValueError('Fixed list length error for "{}", got: {}'
' expected: {}'
self.size = self.packer.size * num
def pack(self, list, kwargs):
self.size = self.packer.size * num
def pack(self, list, kwargs):
- logger.debug("Data: {}".format(list))
-
if len(list) != self.num:
raise ValueError('Fixed list length error, got: {} expected: {}'
.format(len(list), self.num))
if len(list) != self.num:
raise ValueError('Fixed list length error, got: {} expected: {}'
.format(len(list), self.num))
self.length_field = len_field_name
def pack(self, list, kwargs=None):
self.length_field = len_field_name
def pack(self, list, kwargs=None):
- logger.debug("Data: {}".format(list))
if len(list) != kwargs[self.length_field]:
raise ValueError('Variable length error, got: {} expected: {}'
.format(len(list), kwargs[self.length_field]))
if len(list) != kwargs[self.length_field]:
raise ValueError('Variable length error, got: {} expected: {}'
.format(len(list), kwargs[self.length_field]))
return b
def unpack(self, data, offset=0, result=None):
return b
def unpack(self, data, offset=0, result=None):
- logger.debug("Data: {} @ {} Result: {}"
- .format(list, offset, result[self.index]))
# Return a list of arguments
# u8 array
# Return a list of arguments
# u8 array
self.size = self.packer.size
def pack(self, list, kwargs=None):
self.size = self.packer.size
def pack(self, list, kwargs=None):
- logger.debug("Data: {}".format(list))
-
if self.packer.size == 1:
return bytes(list)
if self.packer.size == 1:
return bytes(list)
raise ValueError('Legacy Variable Length Array length mismatch.')
elements = int((len(data) - offset) / self.packer.size)
r = []
raise ValueError('Legacy Variable Length Array length mismatch.')
elements = int((len(data) - offset) / self.packer.size)
r = []
- logger.debug("Legacy VLA: {} elements of size {}"
- .format(elements, self.packer.size))
for e in range(elements):
x = self.packer.unpack(data, offset)
r.append(x)
for e in range(elements):
x = self.packer.unpack(data, offset)
r.append(x)
return self.enum[name]
def pack(self, data, kwargs=None):
return self.enum[name]
def pack(self, data, kwargs=None):
- logger.debug("Data: {}".format(data))
return types['u32'].pack(data, kwargs)
def unpack(self, data, offset=0, result=None):
return types['u32'].pack(data, kwargs)
def unpack(self, data, offset=0, result=None):
logger.debug('Adding union {}'.format(name))
def pack(self, data, kwargs=None):
logger.debug('Adding union {}'.format(name))
def pack(self, data, kwargs=None):
- logger.debug("Data: {}".format(data))
for k, v in data.items():
logger.debug("Key: {} Value: {}".format(k, v))
b = self.packers[k].pack(v, kwargs)
for k, v in data.items():
logger.debug("Key: {} Value: {}".format(k, v))
b = self.packers[k].pack(v, kwargs)
def pack(self, data, kwargs=None):
if not kwargs:
kwargs = data
def pack(self, data, kwargs=None):
if not kwargs:
kwargs = data
- logger.debug("Data: {}".format(data))
b = bytes()
for i, a in enumerate(self.fields):
if a not in data:
b = bytes()
for i, a in enumerate(self.fields):
if a not in data:
- logger.debug("Argument {} not given, defaulting to 0"
- .format(a))
b += b'\x00' * self.packers[i].size
continue
b += b'\x00' * self.packers[i].size
continue