From b7a4e40b754f58de1ffad458ef5b1e3a4e51b5e6 Mon Sep 17 00:00:00 2001 From: Pierre LALET <pierre.lalet@cea.fr> Date: Wed, 10 Feb 2016 19:52:14 +0100 Subject: [PATCH] LLTD: add UT for Large TLVs --- scapy/layers/lltd.py | 1 + test/regression.uts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/scapy/layers/lltd.py b/scapy/layers/lltd.py index 115e6255..7a4a644c 100644 --- a/scapy/layers/lltd.py +++ b/scapy/layers/lltd.py @@ -17,6 +17,7 @@ from scapy.fields import BitField, FlagsField, ByteField, ByteEnumField, \ LongField, MultiEnumField, FieldLenField, FieldListField, \ PacketListField, StrLenField, StrLenFieldUtf16, ConditionalField, MACField from scapy.packet import Packet, Padding, bind_layers +from scapy.plist import PacketList from scapy.layers.l2 import Ether from scapy.layers.inet import IPField from scapy.layers.inet6 import IP6Field diff --git a/test/regression.uts b/test/regression.uts index f317c611..af22f521 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -4436,6 +4436,36 @@ assert pkt.src == pkt.real_src assert pkt.tos == 0 assert pkt.function == 0 += Large TLV +m1, m2, seq = RandMAC()._fix(), RandMAC()._fix(), 123 +preqbase = Ether(src=m1, dst=m2) / LLTD() / \ + LLTDQueryLargeTlv(type="Detailed Icon Image") +prespbase = Ether(src=m2, dst=m1) / LLTD() / \ + LLTDQueryLargeTlvResp() +plist = [] +pkt = preqbase.copy() +pkt.seq = seq +plist.append(Ether(str(pkt))) +pkt = prespbase.copy() +pkt.seq = seq +pkt.flags = "M" +pkt.value = "abcd" +plist.append(Ether(str(pkt))) +pkt = preqbase.copy() +pkt.seq = seq + 1 +pkt.offset = 4 +plist.append(Ether(str(pkt))) +pkt = prespbase.copy() +pkt.seq = seq + 1 +pkt.value = "efg" +plist.append(Ether(str(pkt))) +builder = LargeTlvBuilder() +builder.parse(plist) +data = builder.get_data() +assert len(data) == 1 +assert data.keys()[0].endswith(' [Detailed Icon Image]') +assert data.values()[0] == 'abcdefg' + ############ ############ -- GitLab