P4C
The P4 Compiler
|
Classes | |
struct | Bits |
struct | HashDistHash |
struct | MeterAluHash |
struct | ProxyHashKey |
struct | SaluInputSource |
Public Member Functions | |
void | add (const Use &alloc) |
safe_vector< Byte > | atcam_partition (int *hash_group=nullptr) const override |
safe_vector< TotalInfo > | bits_per_search_bus () const override |
void | clear () override |
Use * | clone () const override |
unsigned | compute_hash_tables () override |
void | dbprint (std::ostream &) const override |
bool | emit_gateway_asm (const MauAsmOutput &, std::ostream &, indent_t, const IR::MAU::Table *) const override |
void | emit_ixbar_asm (const PhvInfo &phv, std::ostream &out, indent_t indent, const TableMatch *fmt, const IR::MAU::Table *) const override |
void | emit_ixbar_hash_table (int hash_table, safe_vector< Slice > &match_data, safe_vector< Slice > &ghost, const TableMatch *fmt, std::map< int, std::map< int, Slice > > &sort) const override |
void | emit_salu_bytemasks (std::ostream &out, indent_t indent) const override |
bool | empty () const override |
bitvec | galois_matrix_bits () const override |
const std::map< int, const IR::Expression * > & | hash_computed_expressions () const override |
int | hash_dist_hash_group () const override |
std::string | hash_dist_used_for () const override |
int | hash_groups () const override |
bool | is_parity_enabled () const override |
TotalBytes | match_hash (safe_vector< int > *hash_groups=nullptr) const override |
bitvec | meter_bit_mask () const override |
bool | search_data () const |
int | ternary_align (const Loc &) const override |
int | total_input_bits () const override |
void | update_resources (int, BFN::Resources::StageResources &) const override |
const char * | way_source_kind () const override |
Public Member Functions inherited from IXBar::Use | |
virtual void | add (const Use &alloc) |
bool | allocated () |
virtual TotalBytes | atcam_match () const |
virtual bool | emit_gateway_asm (const MauAsmOutput &, std::ostream &, indent_t, const IR::MAU::Table *) const =0 |
int | findBytesOnIxbar (const PHV::FieldSlice &sl) const |
virtual int | gateway_group () const |
virtual int | groups () const |
virtual int | search_buses_single () const |
std::string | used_for () const |
Public Attributes | |
safe_vector< Bits > | bit_use |
safe_vector< const IR::Expression * > | field_list_order |
bool | gw_hash_group = false |
bool | gw_search_bus = false |
int | gw_search_bus_bytes = 0 |
struct Tofino::IXBar::Use::HashDistHash | hash_dist_hash |
HashDistDest_t | hash_dist_type = HD_DESTS |
bitvec | hash_seed [HASH_GROUPS] |
unsigned | hash_table_inputs [HASH_GROUPS] = { 0 } |
struct Tofino::IXBar::Use::MeterAluHash | meter_alu_hash |
parity_status_t | parity = PARITY_NONE |
struct Tofino::IXBar::Use::ProxyHashKey | proxy_hash_key_use |
struct Tofino::IXBar::Use::SaluInputSource | salu_input_source |
LTBitMatrix | symmetric_keys |
Public Attributes inherited from IXBar::Use | |
enum IXBar::Use::type_t | type = TYPES |
safe_vector< Byte > | use |
std::string | used_by |
safe_vector< Way > | way_use |
Additional Inherited Members | |
Public Types inherited from IXBar::Use | |
enum | flags_t { NeedRange = 1 , NeedXor = 2 , Align16lo = 4 , Align16hi = 8 , Align32lo = 16 , Align32hi = 32 } |
typedef safe_vector< safe_vector< Byte > * > | TotalBytes |
enum | type_t { EXACT_MATCH , ATCAM_MATCH , TERNARY_MATCH , TRIE_MATCH , GATEWAY , ACTION , PROXY_HASH , SELECTOR , METER , STATEFUL_ALU , HASH_DIST , TYPES } |
|
overridevirtual |
Provides the bytes and hash group location of the partition index of an atcam table
Reimplemented from IXBar::Use.
|
overridevirtual |
Provides information per search bus of how many bytes/bits a particular section of table uses in order to determine what section is the best candidate to ghost off
Reimplemented from IXBar::Use.
|
inlineoverridevirtual |
Reimplemented from IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Reimplemented from IXBar::Use.
|
overridevirtual |
Reimplemented from IXBar::Use.
|
overridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Reimplemented from IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Returns each vector of match data. If multiple hash groups are used, then the allocation, per hash group is provided
Reimplemented from IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Implements IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.
|
overridevirtual |
Reimplemented from IXBar::Use.
|
inlineoverridevirtual |
Implements IXBar::Use.