Lines Matching refs:attr

170             attr = NlAttr(msg, offset)
171 offset += attr.full_len
172 self.attrs.append(attr)
219 self.extack['bad-attr-offs'] = extack.as_scalar('u32')
304 for attr in NlAttrs(gm.raw):
305 if attr.type == Netlink.CTRL_ATTR_FAMILY_ID:
306 fam['id'] = attr.as_scalar('u16')
307 elif attr.type == Netlink.CTRL_ATTR_FAMILY_NAME:
308 fam['name'] = attr.as_strz()
309 elif attr.type == Netlink.CTRL_ATTR_MAXATTR:
310 fam['maxattr'] = attr.as_scalar('u32')
311 elif attr.type == Netlink.CTRL_ATTR_MCAST_GROUPS:
313 for entry in NlAttrs(attr.raw):
446 attr = self.attr_sets[space][name]
449 nl_type = attr.value
450 if attr["type"] == 'nest':
454 attr_payload += self._add_attr(attr['nested-attributes'], subname, subvalue)
455 elif attr["type"] == 'flag':
457 elif attr["type"] == 'string':
459 elif attr["type"] == 'binary':
466 elif attr['type'] in NlAttr.type_formats:
467 format = NlAttr.get_format(attr['type'], attr.byte_order)
470 raise Exception(f'Unknown type at {space} {name} {value} {attr["type"]}')
489 def _decode_binary(self, attr, attr_spec):
492 decoded = attr.as_struct(members)
497 decoded = attr.as_c_array(attr_spec.sub_type)
499 decoded = attr.as_bin()
504 def _decode_array_nest(self, attr, attr_spec):
507 while offset < len(attr.raw):
508 item = NlAttr(attr.raw, offset)
518 for attr in attrs:
520 attr_spec = attr_space.attrs_by_val[attr.type]
522 raise Exception(f"Space '{space}' has no attribute with value '{attr.type}'")
524 subdict = self._decode(NlAttrs(attr.raw), attr_spec['nested-attributes'])
527 decoded = attr.as_strz()
529 decoded = self._decode_binary(attr, attr_spec)
533 decoded = attr.as_scalar(attr_spec['type'], attr_spec.byte_order)
535 decoded = self._decode_array_nest(attr, attr_spec)
552 for attr in attrs:
554 attr_spec = attr_set.attrs_by_val[attr.type]
556 raise Exception(f"Space '{attr_set.name}' has no attribute with value '{attr.type}'")
562 if offset + attr.full_len <= target:
563 offset += attr.full_len
566 raise Exception(f"Can't dive into {attr.type} ({attr_spec['name']}) for extack")
568 subpath = self._decode_extack_path(NlAttrs(attr.raw),
578 if 'bad-attr-offs' not in extack:
584 extack['bad-attr-offs'])
586 del extack['bad-attr-offs']
587 extack['bad-attr'] = path