P4

目前的P4语言可以实现两个数据包的异或操作(对包的数据负载部分进行异或)吗


目前在做一个实验,需要交换机能够将来自不同节点的数据(可以认为两个节点的数据会在很短的时间间隔内到达交换机)进行异或后形成一个数据包进行转发。但是有两个问题困扰我,1. P4软件交换机(bmv2)是否可以缓存上一个数据包的数据,等到下一个数据包来到时进行异或。2. 如何实现异或运算,目前P4的基本动作中好像没有这样的操作吧
已邀请:

Wasdns

赞同来自:


"1. P4软件交换机(bmv2)是否可以缓存上一个数据包的数据,等到下一个数据包来到时进行异或。"

就我有限的了解,这个目前是无法实现的,如果可以实现的话也请各位大神告知哈。

2.如何实现异或运算?

14和16版本的P4语言都对xor提供了支持,如14语言中的元动作bit_xor,可以参考一下语言规范。

Cool - SDN&P4程序猿

赞同来自:


Tofino芯片可以肯定要支持缓存的,这个是基本功能,bmv2目前是不支持的,不过可以想办法模拟,
bmv2缓存的问题可以参考问题391

bit_xor如果要用来实现两个数据包所有数据的操作估计比较困难,处理当前数据的同时,怎么存储你另一个节点的数据包,这个要先解决缓存的问题吧

flybeing_JTPsq

赞同来自:


现在问题如何解决的@zerotyj

要回复问题请先登录注册