
Classes | |
| class | Collect |
| class | Replace |
| class | ReplacementMap |
Public Member Functions | |
| ConvertLookahead (P4::ReferenceMap *refMap, P4::TypeMap *typeMap, DpdkProgramStructure *s) | |
Public Attributes | |
| ReplacementMap | repl |
DPDK target supports lookahead instruction only with header operand. This pass transforms usage of lookahead method with type parameters of other than header type (IR::Type_Header) to lookahead with header type using the following transformation:
This parser code:
T var_name;
state state_name { var_name = pkt.lookahead<T>(); }
is transformed to this:
header lookahead_tmp_hdr { T f; }
T var_name; lookahead_tmp_hdr lookahead_tmp;
state state_name { lookahead_tmp = pkt.lookahead<lookahead_tmp_hdr>(); var_name = lookahead_tmp; }