Skip to content

Commit b7a4e40

Browse files
committed
LLTD: add UT for Large TLVs
1 parent f2b083f commit b7a4e40

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

scapy/layers/lltd.py

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
LongField, MultiEnumField, FieldLenField, FieldListField, \
1818
PacketListField, StrLenField, StrLenFieldUtf16, ConditionalField, MACField
1919
from scapy.packet import Packet, Padding, bind_layers
20+
from scapy.plist import PacketList
2021
from scapy.layers.l2 import Ether
2122
from scapy.layers.inet import IPField
2223
from scapy.layers.inet6 import IP6Field

test/regression.uts

+30
Original file line numberDiff line numberDiff line change
@@ -4436,6 +4436,36 @@ assert pkt.src == pkt.real_src
44364436
assert pkt.tos == 0
44374437
assert pkt.function == 0
44384438

4439+
= Large TLV
4440+
m1, m2, seq = RandMAC()._fix(), RandMAC()._fix(), 123
4441+
preqbase = Ether(src=m1, dst=m2) / LLTD() / \
4442+
LLTDQueryLargeTlv(type="Detailed Icon Image")
4443+
prespbase = Ether(src=m2, dst=m1) / LLTD() / \
4444+
LLTDQueryLargeTlvResp()
4445+
plist = []
4446+
pkt = preqbase.copy()
4447+
pkt.seq = seq
4448+
plist.append(Ether(str(pkt)))
4449+
pkt = prespbase.copy()
4450+
pkt.seq = seq
4451+
pkt.flags = "M"
4452+
pkt.value = "abcd"
4453+
plist.append(Ether(str(pkt)))
4454+
pkt = preqbase.copy()
4455+
pkt.seq = seq + 1
4456+
pkt.offset = 4
4457+
plist.append(Ether(str(pkt)))
4458+
pkt = prespbase.copy()
4459+
pkt.seq = seq + 1
4460+
pkt.value = "efg"
4461+
plist.append(Ether(str(pkt)))
4462+
builder = LargeTlvBuilder()
4463+
builder.parse(plist)
4464+
data = builder.get_data()
4465+
assert len(data) == 1
4466+
assert data.keys()[0].endswith(' [Detailed Icon Image]')
4467+
assert data.values()[0] == 'abcdefg'
4468+
44394469

44404470
############
44414471
############

0 commit comments

Comments
 (0)