我可以删除 .p4 程序中的数据包负载吗?

Can I remove a packet payload inside a .p4 program?

我想知道是否可以从 .p4 程序中的数据包中完全删除数据包有效负载,或者至少将其修改为随机数据。这背后的原因是我正在克隆一个数据包并将其发送到不同的主机(监视器),而该主机不需要数据包有效负载。

取决于你想做什么。如果您想删除某种 header 那么调用

就足够了
hdr.random_header.setInvalid() 

如果您在 Egress 中调用它,它应该从数据包中删除 header 的字段。 如果您在 headers 中有 len 字段,您也可以使用

truncate(new_size)

当你知道没有有效负载的数据包大小时。如果您已经知道更简单的选项,请在此处分享。