Lines Matching full:self
36 def __init__(self, helper, nlmsg_type): argument
37 self.nlmsg_type = enum_or_int(nlmsg_type)
38 self.nla_list = []
39 self._orig_data = None
40 self.helper = helper
41 self.nl_hdr = Nlmsghdr(
42 nlmsg_type=self.nlmsg_type, nlmsg_seq=helper.get_seq(), nlmsg_pid=helper.pid
44 self.base_hdr = None
46 def set_request(self, need_ack=True): argument
47 self.add_nlflags([NlmBaseFlags.NLM_F_REQUEST])
49 self.add_nlflags([NlmBaseFlags.NLM_F_ACK])
51 def add_nlflags(self, flags: List): argument
55 self.nl_hdr.nlmsg_flags |= int_flags
57 def add_nla(self, nla): argument
58 self.nla_list.append(nla)
60 def _get_nla(self, nla_list, nla_type): argument
67 def get_nla(self, nla_type): argument
68 return self._get_nla(self.nla_list, nla_type)
76 def is_type(self, nlmsg_type): argument
78 return nlmsg_type_raw == self.nl_hdr.nlmsg_type
80 def is_reply(self, hdr): argument
84 def msg_name(self): argument
85 return "msg#{}".format(self._get_msg_type())
87 def _get_nl_category(self): argument
88 if self.is_reply(self.nl_hdr):
92 def get_nlm_flags_str(self): argument
93 category = self._get_nl_category()
94 flags = self.nl_hdr.nlmsg_flags
97 return self.helper.get_bitmask_str(NlmBaseFlags, flags)
108 def print_nl_header(self, prepend=""): argument
110 hdr = self.nl_hdr
115 self.msg_name,
116 self.get_nlm_flags_str(),
127 self = cls(helper, hdr.nlmsg_type)
128 self._orig_data = data
129 self.nl_hdr = hdr
134 return self
136 def print_message(self): argument
137 self.print_nl_header()
160 self = cls(helper, hdr.nlmsg_type)
161 self._orig_data = data
162 self.nl_hdr = hdr
170 base_hdr, hdrlen = self.parse_base_header(data[offset:])
171 self.base_hdr = base_hdr
181 nla_list, nla_len = self.parse_nla_list(data[offset:])
187 self.nla_list = nla_list
195 return self
197 def parse_child(self, data: bytes, attr_key, attr_map): argument
198 attrs, _ = self.parse_attrs(data, attr_map)
201 def parse_child_array(self, data: bytes, attr_key, attr_map): argument
213 val = self.parse_child(data[off + 4 : off + nla_len], nla_type, attr_map)
218 def parse_attrs(self, data: bytes, attr_map): argument
238 val = self.parse_child_array(
242 val = self.parse_child(child_data, v["ad"].val, v["child"])
250 def parse_nla_list(self, data: bytes) -> List[NlAttr]: argument
251 return self.parse_attrs(data, self.nl_attrs_map)
253 def __bytes__(self): argument
255 for nla in self.nla_list:
257 ret = bytes(self.base_hdr) + ret
258 self.nl_hdr.nlmsg_len = len(ret) + sizeof(Nlmsghdr)
259 return bytes(self.nl_hdr) + ret
261 def _get_msg_type(self): argument
262 return self.nl_hdr.nlmsg_type
265 def msg_props(self): argument
266 msg_type = self._get_msg_type()
267 for msg_props in self.messages:
273 def msg_name(self): argument
274 msg_props = self.msg_props
279 def print_base_header(self, hdr, prepend=""): argument
282 def print_message(self): argument
283 self.print_nl_header()
284 self.print_base_header(self.base_hdr, " ")
285 for nla in self.nla_list: