<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>Hi,</div>

<div> </div>

<div>I am using the code of the P4_16 runtime tutorial 2018-06-01 and now I want to send metadata of all processed packets from the P4 switch to the controller. It seems that I cannot create new packets at the switch, so I was thinking to clone existing packets and send the cloned packets to the controller. I have cloned the packets using clone3() but now I am stuck. Also I do not want the controller to reply with any additional packets when receiving metadata. If possible, I would put ethernet, ipv4 & udp header on the cloned packets while keeping the original header structure (ethernet, ipv4, tcp/udp, tunneling) for the original packets, but how can I distinguish cloned packets from original packets at the deparser stage? As far as I know, the metadata contains an instance_type to determine it, but metadata is not accessible anymore after the egress pipeline.<br/>
If this was too fancy, what would be the best way to do it in P4 & P4 runtime?</div>

<div> </div>

<div>Kind regards</div>
</div></div></body></html>