Scapy allows to define packets in descriptive form that is easier to digest and debug.
Signed-off-by: Ihar Hrachyshka <[email protected]> --- tests/ovn-macros.at | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/ovn-macros.at b/tests/ovn-macros.at index ee942e8a6..40ded7bd4 100644 --- a/tests/ovn-macros.at +++ b/tests/ovn-macros.at @@ -817,6 +817,29 @@ ovn_trace_client() { ovs-appctl -t $target trace "$@" | tee trace | sed '/^# /d' } +# Receives a string that represents scapy python code that represents a packet. +# Returns a hex-string that contains bytes that reflect the packet description. +# +# Scapy docs: https://scapy.readthedocs.io/en/latest/usage.html +# +# Example of usage: +# +# packet=$(fmt_pkt "\ +# Ether(dst='ff:ff:ff:ff:ff:ff', src='50:64:00:00:00:01') /\ +# IPv6(src='abed::1', dst='ff02::1:ff00:2') /\ +# ICMPv6ND_NS(tgt='abed::2') \ +# ") +# +# ovs-appctl netdev-dummy/receive $vif $packet +# +fmt_pkt() { + echo "from scapy.all import *; \ + import binascii; \ + out = binascii.hexlify(raw($1)); \ + print(out)" | python3 \ + | sed s/^b\'// | sed s/\'$// # hexlify prints as b'...' -> truncate +} + OVS_END_SHELL_HELPERS m4_define([OVN_POPULATE_ARP], [AT_CHECK(ovn_populate_arp__, [0], [ignore])]) -- 2.34.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
