On 4/12/23 03:29, Ihar Hrachyshka wrote:
> Scapy allows to define packets in descriptive form that is easier to
> digest and debug.
> 
> Signed-off-by: Ihar Hrachyshka <ihrac...@redhat.com>
> ---
>  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 \

Should this be $(PYTHON3) instead of "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])])

I really like the idea of the patch, it would be awesome if we could use
this to generate all the packets we inject in the ovn.at tests!

Regards,
Dumitru


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to