Hi,
I found out while debugging my new action that ovs overlaps incoming packet 
payloads and I haven’t found a fix for this. I can’t tell if it’s an OVS bug or 
if I’m doing something wrong.

Basically once do_xlate_actions is called and my action is “hit” I attempt to 
print the packet to gdb using this command:
Ofproto/ofproto-dpif-xlate.c:
Compose_foo(ctx):
                        VLOG_ERR(  "%s",   (char *) 
dp_packet_get_udp_payload(ctx->xin->packet)    );

While debugging I saw the function  dp_packet_get_udp_payload(*b) often being 
called on a previous already used dp_packet pointer (*b), which by debugging 
even further, I notice it sometimes still contains the previous udp payload 
received previously, so the call overlaps the 2 payloads. Is this normal 
behavior? More precise info on how it overlaps can be seen here:

https://mail.openvswitch.org/pipermail/ovs-discuss/2020-May/050090.html

This is my very trivial setup

  *   I’m using netcat to send udp payloads between the 2 hosts in the topology 
h1----s1---h2
  *   Only flows that contain udp packets go through my foo_Action : “sh 
ovs-ofctl add-flow s1 in_port=1,dl_type=2048,nw_proto=17,action=foo”

My end goal is to save these incoming packets in a buffer and if the payloads 
are wrong then there’s really no point.
I’m guessing I need a way to free the contents of the pointer 
ctx->xin->payload, but I haven’t found anything useful in the code, also since 
ctx->xin->packet is a const I can’t modify it.
Sorry if this is kind of a repost from my previous query but I’ve tried 
everything, so any help will be highly appreciated!
Thanks

L

_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to