我可以删除 .p4 程序中的数据包负载吗?
Can I remove a packet payload inside a .p4 program?
我想知道是否可以从 .p4 程序中的数据包中完全删除数据包有效负载,或者至少将其修改为随机数据。这背后的原因是我正在克隆一个数据包并将其发送到不同的主机(监视器),而该主机不需要数据包有效负载。
取决于你想做什么。如果您想删除某种 header 那么调用
就足够了
hdr.random_header.setInvalid()
如果您在 Egress 中调用它,它应该从数据包中删除 header 的字段。
如果您在 headers 中有 len 字段,您也可以使用
truncate(new_size)
当你知道没有有效负载的数据包大小时。如果您已经知道更简单的选项,请在此处分享。
我想知道是否可以从 .p4 程序中的数据包中完全删除数据包有效负载,或者至少将其修改为随机数据。这背后的原因是我正在克隆一个数据包并将其发送到不同的主机(监视器),而该主机不需要数据包有效负载。
取决于你想做什么。如果您想删除某种 header 那么调用
就足够了hdr.random_header.setInvalid()
如果您在 Egress 中调用它,它应该从数据包中删除 header 的字段。 如果您在 headers 中有 len 字段,您也可以使用
truncate(new_size)
当你知道没有有效负载的数据包大小时。如果您已经知道更简单的选项,请在此处分享。