The generated Wireshark plugin code is incorrect for the perc1 header. Also, possible issues with generated Scapy code for the guess_payload_class() function of the perc1 header. The expected next hop is based on the ACK field and later on the BOS field. This is sort of a multi-field transition but not expressed so by the P4 programmer. Common programmer expectation is to base the transitions between the PERC header based only on the BOS field. The ACK field check is only for other dataplane processing purposes.
Result: Wireshark doesn't parse the packet beyond perc1 header.
Attachments in zip:
- perc.p4: source P4 program
- perc_parser.pdf: parser graph for the P4 program
- perc_sample.pcap: sample pcap file contain PERC packets
perc_issue.zip
The generated Wireshark plugin code is incorrect for the perc1 header. Also, possible issues with generated Scapy code for the
guess_payload_class()function of the perc1 header. The expected next hop is based on the ACK field and later on the BOS field. This is sort of a multi-field transition but not expressed so by the P4 programmer. Common programmer expectation is to base the transitions between the PERC header based only on the BOS field. The ACK field check is only for other dataplane processing purposes.Result: Wireshark doesn't parse the packet beyond perc1 header.
Attachments in zip:
perc_issue.zip