mirror of https://github.com/secdev/scapy.git
Merge pull request #858 from Zashas/master
Segment Routing: fixing pseudo-header computation
This commit is contained in:
commit
597d4806a7
|
@ -692,6 +692,11 @@ def in6_chksum(nh, u, p):
|
|||
final_dest_addr_found == 0):
|
||||
rthdr = u.addresses[-1]
|
||||
final_dest_addr_found = 1
|
||||
elif (isinstance(u, IPv6ExtHdrSegmentRouting) and
|
||||
u.segleft != 0 and len(u.addresses) != 0 and
|
||||
final_dest_addr_found == 0):
|
||||
rthdr = u.addresses[0]
|
||||
final_dest_addr_found = 1
|
||||
elif (isinstance(u, IPv6ExtHdrDestOpt) and (len(u.options) == 1) and
|
||||
isinstance(u.options[0], HAO)):
|
||||
hahdr = u.options[0].hoa
|
||||
|
|
|
@ -1596,6 +1596,11 @@ p = IPv6(s)
|
|||
assert(ICMPv6EchoRequest in p and IPv6ExtHdrSegmentRouting in p)
|
||||
assert(len(p[IPv6ExtHdrSegmentRouting].addresses) == 3 and len(p[IPv6ExtHdrSegmentRouting].tlv_objects) == 2)
|
||||
|
||||
= IPv6ExtHdrSegmentRouting Class - UDP pseudo-header checksum - build & dissect
|
||||
|
||||
s= raw(IPv6(src="fc00::1", dst="fd00::42")/IPv6ExtHdrSegmentRouting(addresses=["fd00::42", "fc13::1337"][::-1], segleft=1, lastentry=1) / UDP(sport=11000, dport=4242) / Raw('foobar'))
|
||||
assert(s == b'`\x00\x00\x00\x006+@\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B\x11\x04\x04\x01\x01\x00\x00\x00\xfc\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x137\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B*\xf8\x10\x92\x00\x0e\x81\xb7foobar')
|
||||
|
||||
|
||||
############
|
||||
############
|
||||
|
|
Loading…
Reference in New Issue