Flexio packet processor sample Error

Hello ! I am a student and currently working with BlueField-3 SuperNIC and DOCA-2.7.0.
I am studying the flexio packet processor sample recently. The original function of this sample is to modify the packet payload of the received packet and reflect it back.
I modified its function. The modified function is not to make any changes to the packet ,and then forwarded it.
Specifically, I modified the process_packet function in flexio/packet_processor/dev/flexio_packet_processor_dev.c. I deleted the code for exchanging mac addresses, IP addresses, ports and modifying the payload in the original code.
There is a problem with the code. According to the smac matching rule, the packet that meets the rule cannot be forwarded successfully and repeatedly enters the DPA receiving queue. I want to know why this happens.

I have some preliminary speculations: As shown in the figure below, this is my speculation on the data flow in the flexio packet processor sample

In addition, the DOCA-2.7 version code does not have TIS-related structural design. It was not until DOCA-2.9 that the relevant API and data structure were designed. Is this the reason for the unexpected code results?

Thank you very much! I would greatly appreciate if you could provide some guidance. Your expertise in this area would be invaluable to help me resolve this issue.

Hello! I’ve encountered a similar problem to yours. I set up an rx rule to direct packets with a source port of 12345 to the DPA for processing, and then send them out without modifying the sport. However, this packet is matched by the rx rule again, so this single packet will trigger a dead loop of packet reception and transmission. I’m quite confused. Why is the sent packet matched by the rx rule?
May I ask if you’ve solved this problem? What is the underlying forwarding logic of FlexIO? I would be extremely grateful if you could give me some guidance!