Lines Matching full:self

82     def __init__(self):  argument
83 self._pmap = {}
84 self._af_cls = self.get_af_cls()
85 self._seq_counter = 1
86 self.pid = os.getpid()
88 def get_seq(self): argument
89 ret = self._seq_counter
90 self._seq_counter += 1
93 def get_af_cls(self): argument
100 def get_propmap(self, cls): argument
101 if cls not in self._pmap:
102 self._pmap[cls] = build_propmap(cls)
103 return self._pmap[cls]
105 def get_name_propmap(self, cls): argument
112 def get_attr_byval(self, cls, attr_val): argument
113 propmap = self.get_propmap(cls)
116 def get_af_name(self, family): argument
117 v = self.get_attr_byval(self._af_cls, family)
122 def get_af_value(self, family_str: str) -> int: argument
123 propmap = self.get_name_propmap(self._af_cls)
126 def get_bitmask_str(self, cls, val): argument
127 bmap = get_bitmask_map(self.get_propmap(cls), val)
153 def error_code(self): argument
154 return self.base_hdr.error
156 def parse_base_header(self, data): argument
163 def print_base_header(self, hdr, prepend=""): argument
172 def error_code(self): argument
173 return self.base_hdr.error
176 def error_str(self): argument
177 nla = self.get_nla(NlErrattrType.NLMSGERR_ATTR_MSG)
183 def error_offset(self): argument
184 nla = self.get_nla(NlErrattrType.NLMSGERR_ATTR_OFFS)
190 def cookie(self): argument
191 return self.get_nla(NlErrattrType.NLMSGERR_ATTR_COOKIE)
193 def parse_base_header(self, data): argument
198 if (self.nl_hdr.nlmsg_flags & 0x100) == 0:
202 def print_base_header(self, errhdr, prepend=""): argument
210 self.helper.get_bitmask_str(NlmBaseFlags, hdr.nlmsg_flags),
229 def __init__(self, family, helper): argument
230 self.helper = helper
231 self.sock_fd = self._setup_netlink(family)
232 self._sock_family = family
233 self._data = bytes()
234 self.msgmap = self.build_msgmap()
235 self._family_map = {
239 def build_msgmap(self): argument
241 for d in self.HANDLER_CLASSES:
252 def _setup_netlink(self, netlink_family) -> int: argument
253 family = self.helper.get_af_value("AF_NETLINK")
259 def set_groups(self, mask: int): argument
260 self.sock_fd.setsockopt(socket.SOL_SOCKET, 1, mask)
262 # nl_pid=self.pid, nl_groups=mask)
265 # k = struct.pack("@BBHII", 12, 38, 0, self.pid, mask)
266 # self.sock_fd.bind(k)
268 def join_group(self, group_id: int): argument
269 self.sock_fd.setsockopt(270, 1, group_id)
271 def write_message(self, msg, verbose=True): argument
277 ret = os.write(self.sock_fd.fileno(), msg_bytes)
282 def parse_message(self, data: bytes): argument
289 elif self._sock_family == NlConst.NETLINK_ROUTE:
296 family_name = self._family_map.get(hdr.nlmsg_type, "")
299 cls = self.msgmap.get(family_name, {}).get(nlmsg_type)
302 return cls.from_bytes(self.helper, data)
304 def get_genl_family_id(self, family_name): argument
308 nlmsg_seq=self.helper.get_seq(),
315 self.write_data(msg_bytes)
317 rx_msg = self.read_message()
324 self._family_map[family_id] = family_name
328 def write_data(self, data: bytes): argument
329 self.sock_fd.send(data)
331 def read_data(self): argument
333 data = self.sock_fd.recv(65535)
334 self._data += data
335 if len(self._data) >= sizeof(Nlmsghdr):
338 def read_message(self) -> bytes: argument
339 if len(self._data) < sizeof(Nlmsghdr):
340 self.read_data()
341 hdr = Nlmsghdr.from_buffer_copy(self._data)
342 while hdr.nlmsg_len > len(self._data):
343 self.read_data()
344 raw_msg = self._data[: hdr.nlmsg_len]
345 self._data = self._data[hdr.nlmsg_len:]
346 return self.parse_message(raw_msg)
348 def get_reply(self, tx_msg): argument
349 self.write_message(tx_msg)
351 rx_msg = self.read_message()
357 def __init__(self, obj, seq_number: int, msg_type): argument
358 self._obj = obj
359 self._seq = seq_number
360 self._msg_type = msg_type
362 def __iter__(self): argument
363 return self
365 def __next__(self): argument
366 msg = self._obj.read_message()
367 if self._seq != msg.nl_hdr.nlmsg_seq:
381 elif not msg.is_type(self._msg_type):
389 def setup_netlink(self, netlink_family: NlConst): argument
390 self.helper = NlHelper()
391 self.nlsock = Nlsock(netlink_family, self.helper)
393 def write_message(self, msg, silent=False): argument
399 self.nlsock.write_data(bytes(msg))
401 def read_message(self, silent=False): argument
402 msg = self.nlsock.read_message()
409 def get_reply(self, tx_msg): argument
410 self.write_message(tx_msg)
412 rx_msg = self.read_message()
416 def read_msg_list(self, seq, msg_type): argument
417 return list(NetlinkMultipartIterator(self, seq, msg_type))