783768136f
Each table entry is made up of match fields and action data, with the latter made up of the action ID and the action arguments. The approach of having the user specify explicitly the endianness of the action arguments is difficult to be picked up by P4 compilers, as the P4 compiler is generally unaware about this aspect. This commit introduces the auto-detection of the endianness of the action arguments by examining the endianness of the their destination: network byte order (NBO) when they get copied to headers and host byte order (HBO) when they get copied to packet meta-data or mailboxes. The endianness specification of each action argument as part of the rule specification, e.g. H(...) and N(...) is removed from the rule file and auto-detected based on their destination. The DMA instruction scope is made internal, so mov instructions need to be used. The pattern of transferring complete headers from table entry action args to headers is detected, and the associated set of mov instructions plus header validate is internally detected and replaced with the internal-only DMA instruction to preserve performance. Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>