def setUp_with_dst_opts(self): self.opt1_type = 5 self.opt1_len = 2 self.opt1_data = '\x00\x00' self.opt2_type = 1 self.opt2_len = 0 self.opt2_data = None self.options = [ ipv6.option(self.opt1_type, self.opt1_len, self.opt1_data), ipv6.option(self.opt2_type, self.opt2_len, self.opt2_data), ] self.dst_opts_nxt = 6 self.dst_opts_size = 0 self.dst_opts = ipv6.dst_opts( self.dst_opts_nxt, self.dst_opts_size, self.options) self.ext_hdrs = [self.dst_opts] self.payload_length += len(self.dst_opts) self.nxt = ipv6.dst_opts.TYPE self.ip = ipv6.ipv6( self.version, self.traffic_class, self.flow_label, self.payload_length, self.nxt, self.hop_limit, self.src, self.dst, self.ext_hdrs) self.buf = struct.pack( ipv6.ipv6._PACK_STR, self.v_tc_flow, self.payload_length, self.nxt, self.hop_limit, addrconv.ipv6.text_to_bin(self.src), addrconv.ipv6.text_to_bin(self.dst)) self.buf += self.dst_opts.serialize()
def setUp_with_dst_opts(self): self.opt1_type = 5 self.opt1_len = 2 self.opt1_data = '\x00\x00' self.opt2_type = 1 self.opt2_len = 0 self.opt2_data = None self.options = [ ipv6.option(self.opt1_type, self.opt1_len, self.opt1_data), ipv6.option(self.opt2_type, self.opt2_len, self.opt2_data), ] self.dst_opts_nxt = 6 self.dst_opts_size = 0 self.dst_opts = ipv6.dst_opts(self.dst_opts_nxt, self.dst_opts_size, self.options) self.ext_hdrs = [self.dst_opts] self.payload_length += len(self.dst_opts) self.nxt = ipv6.dst_opts.TYPE self.ip = ipv6.ipv6(self.version, self.traffic_class, self.flow_label, self.payload_length, self.nxt, self.hop_limit, self.src, self.dst, self.ext_hdrs) self.buf = struct.pack(ipv6.ipv6._PACK_STR, self.v_tc_flow, self.payload_length, self.nxt, self.hop_limit, addrconv.ipv6.text_to_bin(self.src), addrconv.ipv6.text_to_bin(self.dst)) self.buf += self.dst_opts.serialize()
def test_default_args(self): hdr = ipv6.dst_opts() buf = hdr.serialize() res = struct.unpack('!BB', str(buf[:2])) eq_(res[0], 6) eq_(res[1], 0) opt = ipv6.option(type_=1, len_=6, data='\x00\x00\x00\x00\x00\x00') eq_(str(buf[2:]), opt.serialize())
def test_default_args(self): hdr = ipv6.dst_opts() buf = hdr.serialize() res = struct.unpack('!BB', str(buf[:2])) eq_(res[0], 6) eq_(res[1], 0) opt = ipv6.option(type_=1, len_=4, data='\x00\x00\x00\x00') eq_(str(buf[2:]), opt.serialize())
def setUp(self): self.nxt = 60 self.size = 8 self.data = [ ipv6.option(5, 2, '\x00\x00'), ipv6.option(1, 0, None), ipv6.option(0xc2, 4, '\x00\x01\x00\x00'), ipv6.option(1, 0, None), ] self.dst = ipv6.dst_opts(self.nxt, self.size, self.data) self.form = '!BB' self.buf = struct.pack(self.form, self.nxt, self.size) \ + self.data[0].serialize() \ + self.data[1].serialize() \ + self.data[2].serialize() \ + self.data[3].serialize()
def test_invalid_size(self): ipv6.dst_opts(self.nxt, 1, self.data)