Lines Matching refs:netid
127 def UidRangeForNetid(cls, netid): argument
129 cls.UID_RANGE_SIZE * netid,
130 cls.UID_RANGE_SIZE * (netid + 1) - 1
134 def UidForNetid(cls, netid): argument
135 if not netid:
137 return random.randint(*cls.UidRangeForNetid(netid))
140 def _TableForNetid(cls, netid): argument
141 if cls.AUTOCONF_TABLE_OFFSET and netid in cls.ifindices:
142 return cls.ifindices[netid] + (-cls.AUTOCONF_TABLE_OFFSET)
144 return netid
147 def GetInterfaceName(netid): argument
148 return "nettest%d" % netid
151 def RouterMacAddress(netid): argument
152 return "02:00:00:00:%02x:00" % netid
155 def MyMacAddress(netid): argument
156 return "02:00:00:00:%02x:01" % netid
159 def _RouterAddress(netid, version): argument
161 return "fe80::%02x00" % netid
163 return "10.0.%d.1" % netid
168 def _MyIPv4Address(cls, netid): argument
169 return "10.0.%d.2" % netid
172 def _MyIPv6Address(cls, netid): argument
173 return net_test.GetLinkAddress(cls.GetInterfaceName(netid), False)
176 def MyAddress(cls, version, netid): argument
177 return {4: cls._MyIPv4Address(netid),
178 5: cls._MyIPv4Address(netid),
179 6: cls._MyIPv6Address(netid)}[version]
182 def MySocketAddress(cls, version, netid): argument
183 addr = cls.MyAddress(version, netid)
187 def MyLinkLocalAddress(cls, netid): argument
188 return net_test.GetLinkAddress(cls.GetInterfaceName(netid), True)
195 def OnlinkPrefix(version, netid): argument
196 return {4: "10.0.%d.0" % netid,
197 6: "2001:db8:%02x::" % netid}[version]
211 def CreateTunInterface(cls, netid): argument
212 iface = cls.GetInterfaceName(netid)
221 net_test.SetInterfaceHWAddr(iface, cls.MyMacAddress(netid))
231 def SendRA(cls, netid, retranstimer=None, reachabletime=0, options=()): argument
233 macaddr = cls.RouterMacAddress(netid)
234 lladdr = cls._RouterAddress(netid, 6)
252 scapy.ICMPv6NDOptPrefixInfo(prefix=cls.OnlinkPrefix(6, netid),
259 posix.write(cls.tuns[netid].fileno(), str(ra))
262 def _RunSetupCommands(cls, netid, is_add): argument
265 iface = cls.GetInterfaceName(netid)
266 ifindex = cls.ifindices[netid]
267 macaddr = cls.RouterMacAddress(netid)
268 router = cls._RouterAddress(netid, version)
269 table = cls._TableForNetid(netid)
272 start, end = cls.UidRangeForNetid(netid)
276 cls.iproute.FwmarkRule(version, is_add, netid, cls.NETID_FWMASK, table,
295 cls.iproute.AddAddress(cls._MyIPv4Address(netid),
300 cls.OnlinkPrefix(version, netid),
307 cls.OnlinkPrefix(version, netid),
311 cls.iproute.DelAddress(cls._MyIPv4Address(netid),
321 def _SetInboundMarking(cls, netid, iface, is_add): argument
327 add_del, iface, netid)
333 for netid in cls.tuns:
334 cls._SetInboundMarking(netid, cls.GetInterfaceName(netid), is_add)
337 def SetDefaultNetwork(cls, netid): argument
338 table = cls._TableForNetid(netid) if netid else None
362 for netid in cls.tuns:
363 iface = cls.GetInterfaceName(netid)
405 for netid in cls.NETIDS:
406 cls.tuns[netid] = cls.CreateTunInterface(netid)
407 iface = cls.GetInterfaceName(netid)
408 cls.ifindices[netid] = net_test.GetInterfaceIndex(iface)
410 cls.SendRA(netid)
411 cls._RunSetupCommands(netid, True)
435 for netid in cls.tuns:
436 cls._RunSetupCommands(netid, False)
437 cls.tuns[netid].close()
445 def SetSocketMark(self, s, netid): argument
446 if netid is None:
447 netid = 0
448 s.setsockopt(SOL_SOCKET, net_test.SO_MARK, netid)
485 def SelectInterface(self, s, netid, mode): argument
487 os.fchown(s.fileno(), self.UidForNetid(netid), -1)
489 self.SetSocketMark(s, netid)
491 iface = self.GetInterfaceName(netid) if netid else ""
494 self.SetUnicastInterface(s, self.ifindices.get(netid, 0))
498 def BuildSocket(self, version, constructor, netid, routing_mode): argument
503 self.SelectInterface(s, netid, routing_mode)
505 os.fchown(s.fileno(), self.UidForNetid(netid), -1)
519 diff = [netid for netid in self.NETIDS if netid not in exclude]
522 def SendOnNetid(self, version, s, dstaddr, dstport, netid, payload, cmsgs): argument
523 if netid is not None:
524 pktinfo = MakePktInfo(version, None, self.ifindices[netid])
531 def ReceiveEtherPacketOn(self, netid, packet): argument
532 posix.write(self.tuns[netid].fileno(), str(packet))
534 def ReceivePacketOn(self, netid, ip_packet): argument
535 routermac = self.RouterMacAddress(netid)
536 mymac = self.MyMacAddress(netid)
538 self.ReceiveEtherPacketOn(netid, packet)
540 def ReadAllPacketsOn(self, netid, include_multicast=False): argument
553 packet = posix.read(self.tuns[netid].fileno(), 4096)
576 def InvalidateDstCache(self, version, netid): argument
592 iface = self.GetInterfaceName(netid)
593 ifindex = self.ifindices[netid]
594 table = self._TableForNetid(netid)
605 waiting = sum(len(self.ReadAllPacketsOn(netid)) for netid in self.NETIDS)
681 def ExpectNoPacketsOn(self, netid, msg): argument
682 packets = self.ReadAllPacketsOn(netid)
689 def ExpectPacketOn(self, netid, msg, expected): argument
699 packets = self.ReadAllPacketsOn(netid, include_multicast=include_multicast)
729 for netid in self.tuns:
730 iif = self.GetInterfaceName(netid)
731 combinations.append((netid, iif, ip_if, myaddr, remoteaddr))
743 def _ReceiveAndExpectResponse(self, netid, packet, reply, msg): argument
744 self.ReceivePacketOn(netid, packet)
746 return self.ExpectPacketOn(netid, msg, reply)
748 self.ExpectNoPacketsOn(netid, msg)