Exemplo n.º 1
0
    def test_default_args(self):
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        g = igmpv3_report()
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, six.binary_type(buf))
        buf = bytearray(buf)
        pack_into('!H', buf, 2, 0)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], 0)

        # records without record_num
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        record1 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
        record2 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
                                      ['172.16.10.10', '172.16.10.27'])
        record3 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 0, '225.0.0.3', [],
                                      b'abc\x00')
        record4 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 2, '225.0.0.4',
                                      ['172.16.10.10', '172.16.10.27'],
                                      b'abc\x00')
        records = [record1, record2, record3, record4]
        g = igmpv3_report(records=records)
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, six.binary_type(buf))
        buf = bytearray(buf)
        pack_into('!H', buf, 2, 0)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], len(records))
Exemplo n.º 2
0
    def test_default_args(self):
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        g = igmpv3_report()
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, six.binary_type(buf))
        buf = bytearray(buf)
        pack_into("!H", buf, 2, 0)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], 0)

        # records without record_num
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        record1 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 0, "225.0.0.1")
        record2 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 2, "225.0.0.2", ["172.16.10.10", "172.16.10.27"])
        record3 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 0, "225.0.0.3", [], b"abc\x00")
        record4 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 2, "225.0.0.4", ["172.16.10.10", "172.16.10.27"], b"abc\x00")
        records = [record1, record2, record3, record4]
        g = igmpv3_report(records=records)
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, six.binary_type(buf))
        buf = bytearray(buf)
        pack_into("!H", buf, 2, 0)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], len(records))
Exemplo n.º 3
0
    def setUp(self):
        self.msgtype = IGMP_TYPE_REPORT_V3
        self.csum = 0
        self.record_num = 0
        self.records = []

        self.buf = pack(igmpv3_report._PACK_STR, self.msgtype, self.csum, self.record_num)

        self.g = igmpv3_report(self.msgtype, self.csum, self.record_num, self.records)
Exemplo n.º 4
0
    def setUp(self):
        self.msgtype = IGMP_TYPE_REPORT_V3
        self.csum = 0
        self.record_num = 0
        self.records = []

        self.buf = pack(igmpv3_report._PACK_STR, self.msgtype, self.csum,
                        self.record_num)

        self.g = igmpv3_report(self.msgtype, self.csum, self.record_num,
                               self.records)
Exemplo n.º 5
0
    def test_default_args(self):
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        g = igmpv3_report()
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, str(buf))
        buf = bytearray(buf)
        pack_into('!H', buf, 2, 0)
        buf = str(buf)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], 0)

        # records without record_num
        prev = ipv4(proto=inet.IPPROTO_IGMP)
        record1 = igmpv3_report_group(
            MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
        record2 = igmpv3_report_group(
            MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
            ['172.16.10.10', '172.16.10.27'])
        record3 = igmpv3_report_group(
            MODE_IS_INCLUDE, 1, 0, '225.0.0.3', [], 'abc\x00')
        record4 = igmpv3_report_group(
            MODE_IS_INCLUDE, 1, 2, '225.0.0.4',
            ['172.16.10.10', '172.16.10.27'], 'abc\x00')
        records = [record1, record2, record3, record4]
        g = igmpv3_report(records=records)
        prev.serialize(g, None)
        buf = g.serialize(bytearray(), prev)
        res = unpack_from(igmpv3_report._PACK_STR, str(buf))
        buf = bytearray(buf)
        pack_into('!H', buf, 2, 0)
        buf = str(buf)

        eq_(res[0], IGMP_TYPE_REPORT_V3)
        eq_(res[1], checksum(buf))
        eq_(res[2], len(records))
Exemplo n.º 6
0
 def setUp_with_records(self):
     self.record1 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 0, "225.0.0.1")
     self.record2 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 2, "225.0.0.2", ["172.16.10.10", "172.16.10.27"])
     self.record3 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 0, "225.0.0.3", [], b"abc\x00")
     self.record4 = igmpv3_report_group(
         MODE_IS_INCLUDE, 2, 2, "225.0.0.4", ["172.16.10.10", "172.16.10.27"], b"abcde\x00\x00\x00"
     )
     self.records = [self.record1, self.record2, self.record3, self.record4]
     self.record_num = len(self.records)
     self.buf = pack(igmpv3_report._PACK_STR, self.msgtype, self.csum, self.record_num)
     self.buf += self.record1.serialize()
     self.buf += self.record2.serialize()
     self.buf += self.record3.serialize()
     self.buf += self.record4.serialize()
     self.g = igmpv3_report(self.msgtype, self.csum, self.record_num, self.records)
Exemplo n.º 7
0
 def setUp_with_records(self):
     self.record1 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
     self.record2 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
                                        ['172.16.10.10', '172.16.10.27'])
     self.record3 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 0, '225.0.0.3',
                                        [], b'abc\x00')
     self.record4 = igmpv3_report_group(MODE_IS_INCLUDE, 2, 2, '225.0.0.4',
                                        ['172.16.10.10', '172.16.10.27'],
                                        b'abcde\x00\x00\x00')
     self.records = [self.record1, self.record2, self.record3, self.record4]
     self.record_num = len(self.records)
     self.buf = pack(igmpv3_report._PACK_STR, self.msgtype, self.csum,
                     self.record_num)
     self.buf += self.record1.serialize()
     self.buf += self.record2.serialize()
     self.buf += self.record3.serialize()
     self.buf += self.record4.serialize()
     self.g = igmpv3_report(self.msgtype, self.csum, self.record_num,
                            self.records)
Exemplo n.º 8
0
 def test_record_num_smaller_than_records(self):
     self.record1 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
     self.record2 = igmpv3_report_group(MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
                                        ['172.16.10.10', '172.16.10.27'])
     self.record3 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 0, '225.0.0.3',
                                        [], 'abc\x00')
     self.record4 = igmpv3_report_group(MODE_IS_INCLUDE, 1, 2, '225.0.0.4',
                                        ['172.16.10.10', '172.16.10.27'],
                                        'abc\x00')
     self.records = [self.record1, self.record2, self.record3, self.record4]
     self.record_num = len(self.records) - 1
     self.buf = pack(igmpv3_report._PACK_STR, self.msgtype, self.csum,
                     self.record_num)
     self.buf += self.record1.serialize()
     self.buf += self.record2.serialize()
     self.buf += self.record3.serialize()
     self.buf += self.record4.serialize()
     self.g = igmpv3_report(self.msgtype, self.csum, self.record_num,
                            self.records)
     self.test_parser()
Exemplo n.º 9
0
 def setUp_with_records(self):
     self.record1 = igmpv3_report_group(
         MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
     self.record2 = igmpv3_report_group(
         MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
         ['172.16.10.10', '172.16.10.27'])
     self.record3 = igmpv3_report_group(
         MODE_IS_INCLUDE, 1, 0, '225.0.0.3', [], 'abc\x00')
     self.record4 = igmpv3_report_group(
         MODE_IS_INCLUDE, 2, 2, '225.0.0.4',
         ['172.16.10.10', '172.16.10.27'], 'abcde\x00\x00\x00')
     self.records = [self.record1, self.record2, self.record3,
                     self.record4]
     self.record_num = len(self.records)
     self.buf = pack(igmpv3_report._PACK_STR, self.msgtype,
                     self.csum, self.record_num)
     self.buf += self.record1.serialize()
     self.buf += self.record2.serialize()
     self.buf += self.record3.serialize()
     self.buf += self.record4.serialize()
     self.g = igmpv3_report(
         self.msgtype, self.csum, self.record_num, self.records)
Exemplo n.º 10
0
 def test_record_num_smaller_than_records(self):
     self.record1 = igmpv3_report_group(
         MODE_IS_INCLUDE, 0, 0, '225.0.0.1')
     self.record2 = igmpv3_report_group(
         MODE_IS_INCLUDE, 0, 2, '225.0.0.2',
         ['172.16.10.10', '172.16.10.27'])
     self.record3 = igmpv3_report_group(
         MODE_IS_INCLUDE, 1, 0, '225.0.0.3', [], b'abc\x00')
     self.record4 = igmpv3_report_group(
         MODE_IS_INCLUDE, 1, 2, '225.0.0.4',
         ['172.16.10.10', '172.16.10.27'], b'abc\x00')
     self.records = [self.record1, self.record2, self.record3,
                     self.record4]
     self.record_num = len(self.records) - 1
     self.buf = pack(igmpv3_report._PACK_STR, self.msgtype,
                     self.csum, self.record_num)
     self.buf += self.record1.serialize()
     self.buf += self.record2.serialize()
     self.buf += self.record3.serialize()
     self.buf += self.record4.serialize()
     self.g = igmpv3_report(
         self.msgtype, self.csum, self.record_num, self.records)
     self.test_parser()