P4C
The P4 Compiler
Loading...
Searching...
No Matches
ActionData::ALUPosition Struct Reference

#include <action_format.h>

Public Member Functions

 ALUPosition (const ALUOperation *ao, Location_t l, size_t sb)
 

Public Attributes

const ALUOperationalu_op
 
Location_t loc
 
size_t start_byte
 

Friends

std::ostream & operator<< (std::ostream &out, const ALUPosition &pos)
 

Detailed Description

Information on the position of a single ALUOperation on a RAM line. Due to the constraint, that all of the action data in a single ALU operation has to appear in a single Action Data Bus slot. Due to the direct extraction through the homerow bus, the following constraint must be satisfied:

- slot_bit_lo / container_size == slot_bit_hi / container_size (integer division)

This means that the entirety of a single ALU operation starts a byte and is a particular size. The start can either be in ActionDataTable RAM or Match RAM (Immediate)

Specifically for anything that comes from a Meter ALU, a third location has been provided