def setUp(self):
        super().setUp()

        config.IP6_SUPPORT = True
        config.IP4_SUPPORT = True
        config.PACKET_INTEGRITY_CHECK = True
        config.PACKET_SANITY_CHECK = True
        config.TAP_MTU = 1500

        self.packet_handler = PacketHandler(None)
        self.packet_handler.mac_address = MacAddress("02:00:00:77:77:77")
        self.packet_handler.ip4_host = [Ip4Host("192.168.9.7/24")]
        self.packet_handler.ip6_host = [Ip6Host("2603:9000:e307:9f09:0:ff:fe77:7777/64")]
        self.packet_handler.arp_cache = Mock(ArpCache)
        self.packet_handler.nd_cache = Mock(NdCache)
        self.packet_handler.tx_ring = Mock(TxRing)
        self.packet_handler.arp_cache.find_entry.return_value = MacAddress("52:54:00:df:85:37")
        self.packet_handler.nd_cache.find_entry.return_value = MacAddress("52:54:00:df:85:37")
        self.packet_handler.tx_ring.enqueue = lambda _: _.assemble(self.frame_tx)

        self.frame_tx = memoryview(bytearray(2048))
Exemple #2
0
 def test___init__(self):
     self.assertEqual(
         MacAddress("01:23:45:ab:cd:ef")._address, 1251004370415)
     self.assertEqual(
         MacAddress(MacAddress("01:23:45:ab:cd:ef"))._address,
         1251004370415)
     self.assertEqual(
         MacAddress(b"\x01#E\xab\xcd\xef")._address, 1251004370415)
     self.assertEqual(MacAddress(1251004370415)._address, 1251004370415)
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       "01:23:45:ab:cd")
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       "01:23:45:ab:cd:ef:01")
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       "01:23:45:ab:cd:eg")
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       "01:23:45:ab:cd::eg")
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       b"\x01#E\xab\xcd")
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       b"\x01#E\xab\xcd\xef\x01")
     self.assertRaises(MacIp4AddressFormatError, MacAddress, -1)
     self.assertRaises(MacIp4AddressFormatError, MacAddress,
                       281474976710656)
Exemple #3
0
    def setUp(self):
        @dataclass
        class MacSample:
            mac_address: MacAddress
            is_unspecified: bool = False
            is_unicast: bool = False
            is_multicast_ip4: bool = False
            is_multicast_ip6: bool = False
            is_multicast_ip6_solicited_node: bool = False
            is_broadcast: bool = False

        self.mac_samples = [
            MacSample(MacAddress("00:00:00:00:00:00"), is_unspecified=True),
            MacSample(MacAddress("02:03:04:aa:bb:cc"), is_unicast=True),
            MacSample(MacAddress("01:00:5e:01:02:03"), is_multicast_ip4=True),
            MacSample(MacAddress("33:33:00:01:02:03"), is_multicast_ip6=True),
            MacSample(MacAddress("33:33:ff:01:02:03"),
                      is_multicast_ip6=True,
                      is_multicast_ip6_solicited_node=True),
            MacSample(MacAddress("ff:ff:ff:ff:ff:ff"), is_broadcast=True),
        ]
Exemple #4
0
 def test___eq__(self):
     self.assertEqual(MacAddress("00:00:00:00:00:00"),
                      MacAddress("00:00:00:00:00:00"))
     self.assertNotEqual(MacAddress("00:00:00:00:00:00"),
                         MacAddress("11:11:11:11:11:11"))
Exemple #5
0
 def test___int__(self):
     self.assertEqual(int(MacAddress("01:23:45:ab:cd:ef")), 1251004370415)
Exemple #6
0
 def test___bytes__(self):
     self.assertEqual(bytes(MacAddress("01:23:45:ab:cd:ef")),
                      b"\x01#E\xab\xcd\xef")
Exemple #7
0
 def test___repr__(self):
     self.assertEqual(repr(MacAddress("01:23:45:ab:cd:ef")),
                      "MacAddress('01:23:45:ab:cd:ef')")
Exemple #8
0
 def test___str__(self):
     self.assertEqual(str(MacAddress("FF:00:AB:C7:D4:33")),
                      "ff:00:ab:c7:d4:33")