Lines Matching full:netlink

22 # Generic Netlink code which should really be in some library, but I can't quickly find one.
26 class Netlink: class
27 # Netlink socket
35 # Netlink message
109 return f"Netlink error: {os.strerror(self.error)}\n{self.nl_msg}"
131 self.type = self._type & ~Netlink.NLA_TYPE_MASK
132 self.is_nest = self._type & Netlink.NLA_F_NESTED
204 if self.nl_type == Netlink.NLMSG_ERROR:
208 elif self.nl_type == Netlink.NLMSG_DONE:
214 if self.nl_flags & Netlink.NLM_F_ACK_TLVS and extack_off:
218 if extack.type == Netlink.NLMSGERR_ATTR_MSG:
220 elif extack.type == Netlink.NLMSGERR_ATTR_MISS_TYPE:
222 elif extack.type == Netlink.NLMSGERR_ATTR_MISS_NEST:
224 elif extack.type == Netlink.NLMSGERR_ATTR_OFFS:
226 elif extack.type == Netlink.NLMSGERR_ATTR_POLICY:
246 if attr.type == Netlink.NL_POLICY_TYPE_ATTR_TYPE:
248 policy['type'] = Netlink.AttrType(type).name
249 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MIN_VALUE_S:
251 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MAX_VALUE_S:
253 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MIN_VALUE_U:
255 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MAX_VALUE_U:
257 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MIN_LENGTH:
259 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MAX_LENGTH:
261 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_BITFIELD32_MASK:
263 elif attr.type == Netlink.NL_POLICY_TYPE_ATTR_MASK:
310 with socket.socket(socket.AF_NETLINK, socket.SOCK_RAW, Netlink.NETLINK_GENERIC) as sock:
311 sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_CAP_ACK, 1)
313 msg = _genl_msg(Netlink.GENL_ID_CTRL,
314 Netlink.NLM_F_REQUEST | Netlink.NLM_F_ACK | Netlink.NLM_F_DUMP,
315 Netlink.CTRL_CMD_GETFAMILY, 1)
328 print("Netlink error:", nl_msg.error)
336 if attr.type == Netlink.CTRL_ATTR_FAMILY_ID:
338 elif attr.type == Netlink.CTRL_ATTR_FAMILY_NAME:
340 elif attr.type == Netlink.CTRL_ATTR_MAXATTR:
342 elif attr.type == Netlink.CTRL_ATTR_MCAST_GROUPS:
348 if entry_attr.type == Netlink.CTRL_ATTR_MCAST_GRP_NAME:
350 elif entry_attr.type == Netlink.CTRL_ATTR_MCAST_GRP_ID:
411 super().__init__(family_name, Netlink.NETLINK_GENERIC)
470 if self.proto == "netlink-raw":
479 # Note that netlink will use conservative (min) message size for
483 # Netlink will always allocate at least PAGE_SIZE - sizeof(skb_shinfo)
490 self.sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_CAP_ACK, 1)
491 self.sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_EXT_ACK, 1)
492 self.sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_GET_STRICT_CHK, 1)
509 self.sock.setsockopt(Netlink.SOL_NETLINK, Netlink.NETLINK_ADD_MEMBERSHIP,
557 nl_type |= Netlink.NLA_F_NESTED
598 nl_type |= Netlink.NLA_F_NESTED
926 print("Netlink error in ntf!?", os.strerror(-nl_msg.error))
930 print("Netlink done while checking for ntf!?")
971 nl_flags = Netlink.NLM_F_REQUEST | Netlink.NLM_F_ACK
1017 print("Netlink warning:")
1020 if Netlink.NLM_F_DUMP in req_flags:
1055 req_flags.append(Netlink.NLM_F_DUMP)