P4C
The P4 Compiler
Loading...
Searching...
No Matches
TofinoIXBarSpec Class Reference
Inheritance diagram for TofinoIXBarSpec:
[legend]

Public Member Functions

int byteGroups () const override
 
int exactBytesPerGroup () const override
 
int exactGroups () const override
 
int exactMatchTotalBytes () const override
 
int fairModeHashBits () const override
 
int gatewaySearchBytes () const override
 
int getExactOrdBase (int group) const override
 
int getTernaryOrdBase (int group) const override
 
int hashDistBits () const override
 
int hashDistExpandBits () const override
 
int hashDistMaxMaskBits () const override
 
int hashDistSlices () const override
 
int hashDistUnits () const override
 
int hashGroups () const override
 
int hashIndexGroups () const override
 
int hashMatrixSize () const override
 
int hashParityBit () const override
 
int hashSingleBits () const override
 
int hashTables () const override
 
int lpfInputBytes () const override
 
int maxHashBits () const override
 
int meterAluHashBits () const override
 
int meterAluHashParityByteStart () const override
 
int meterPrecolorSize () const override
 
int ramLineSelectBits () const override
 
int ramSelectBitStart () const override
 
int repeatingConstraintSect () const override
 
int resilientModeHashBits () const override
 
int tcam_columns () const override
 
int tcam_rows () const override
 
int ternaryBytesPerBigGroup () const override
 
int ternaryBytesPerGroup () const override
 
int ternaryGroups () const override
 
int ternaryMatchTotalBytes () const override
 
int tofinoMeterAluByteOffset () const override
 
int xcmpMatchTotalBytes () const override
 

Static Public Member Functions

static constexpr P4::le_bitrange INDEX_BIT_RANGE (int group)
 
static constexpr int INDEX_RANGE_SUBGROUP (P4::le_bitrange r)
 

Static Public Attributes

static constexpr int BYTE_GROUPS = StageUse::MAX_TERNARY_GROUPS / 2
 
static constexpr int EXACT_BYTES_PER_GROUP = 16
 
static constexpr int EXACT_GROUPS = 8
 
static constexpr int FAIR_MODE_HASH_BITS = 14
 
static constexpr int GATEWAY_SEARCH_BYTES = 4
 
static constexpr int HASH_DIST_BITS = 16
 
static constexpr int HASH_DIST_EXPAND_BITS = 7
 
static constexpr int HASH_DIST_MAX_MASK_BITS = HASH_DIST_BITS + HASH_DIST_EXPAND_BITS
 
static constexpr int HASH_DIST_SLICES = 3
 
static constexpr int HASH_DIST_UNITS = 2
 
static constexpr int HASH_GROUPS = 8
 
static constexpr int HASH_INDEX_GROUPS = 4
 
static constexpr int HASH_MATRIX_SIZE = RAM_SELECT_BIT_START + HASH_SINGLE_BITS
 
static constexpr int HASH_PARITY_BIT = 51
 
static constexpr int HASH_SINGLE_BITS = 12
 
static constexpr int HASH_TABLES = 16
 
static constexpr int LPF_INPUT_BYTES = 4
 
static constexpr int MAX_HASH_BITS = 52
 
static constexpr int METER_ALU_HASH_BITS = 52
 
static constexpr int METER_ALU_HASH_PARITY_BYTE_START = 48
 
static constexpr int METER_PRECOLOR_SIZE = 2
 
static constexpr int RAM_LINE_SELECT_BITS = 10
 
static constexpr int RAM_SELECT_BIT_START = 40
 
static constexpr int REPEATING_CONSTRAINT_SECT = 4
 
static constexpr int RESILIENT_MODE_HASH_BITS = 51
 
static constexpr P4::le_bitrange SELECT_BIT_RANGE
 
static constexpr int TERNARY_BYTES_PER_BIG_GROUP = 11
 
static constexpr int TERNARY_BYTES_PER_GROUP = 5
 
static constexpr int TERNARY_GROUPS = StageUse::MAX_TERNARY_GROUPS
 
static constexpr int TOFINO_METER_ALU_BYTE_OFFSET = 8
 

Member Function Documentation

◆ byteGroups()

int TofinoIXBarSpec::byteGroups ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ exactBytesPerGroup()

int TofinoIXBarSpec::exactBytesPerGroup ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ exactGroups()

int TofinoIXBarSpec::exactGroups ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ exactMatchTotalBytes()

int TofinoIXBarSpec::exactMatchTotalBytes ( ) const
overridevirtual

Implements IXBarSpec.

◆ fairModeHashBits()

int TofinoIXBarSpec::fairModeHashBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ gatewaySearchBytes()

int TofinoIXBarSpec::gatewaySearchBytes ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ getExactOrdBase()

int TofinoIXBarSpec::getExactOrdBase ( int group) const
overridevirtual

Implements IXBarSpec.

◆ getTernaryOrdBase()

int TofinoIXBarSpec::getTernaryOrdBase ( int group) const
overridevirtual

Implements IXBarSpec.

◆ hashDistBits()

int TofinoIXBarSpec::hashDistBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashDistExpandBits()

int TofinoIXBarSpec::hashDistExpandBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashDistMaxMaskBits()

int TofinoIXBarSpec::hashDistMaxMaskBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashDistSlices()

int TofinoIXBarSpec::hashDistSlices ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashDistUnits()

int TofinoIXBarSpec::hashDistUnits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashGroups()

int TofinoIXBarSpec::hashGroups ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashIndexGroups()

int TofinoIXBarSpec::hashIndexGroups ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashMatrixSize()

int TofinoIXBarSpec::hashMatrixSize ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashParityBit()

int TofinoIXBarSpec::hashParityBit ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashSingleBits()

int TofinoIXBarSpec::hashSingleBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ hashTables()

int TofinoIXBarSpec::hashTables ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ lpfInputBytes()

int TofinoIXBarSpec::lpfInputBytes ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ maxHashBits()

int TofinoIXBarSpec::maxHashBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ meterAluHashBits()

int TofinoIXBarSpec::meterAluHashBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ meterAluHashParityByteStart()

int TofinoIXBarSpec::meterAluHashParityByteStart ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ meterPrecolorSize()

int TofinoIXBarSpec::meterPrecolorSize ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ ramLineSelectBits()

int TofinoIXBarSpec::ramLineSelectBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ ramSelectBitStart()

int TofinoIXBarSpec::ramSelectBitStart ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ repeatingConstraintSect()

int TofinoIXBarSpec::repeatingConstraintSect ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ resilientModeHashBits()

int TofinoIXBarSpec::resilientModeHashBits ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ tcam_columns()

int TofinoIXBarSpec::tcam_columns ( ) const
overridevirtual

Implements IXBarSpec.

◆ tcam_rows()

int TofinoIXBarSpec::tcam_rows ( ) const
overridevirtual

Implements IXBarSpec.

◆ ternaryBytesPerBigGroup()

int TofinoIXBarSpec::ternaryBytesPerBigGroup ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ ternaryBytesPerGroup()

int TofinoIXBarSpec::ternaryBytesPerGroup ( ) const
overridevirtual

Implements IXBarSpec.

◆ ternaryGroups()

int TofinoIXBarSpec::ternaryGroups ( ) const
overridevirtual

Implements IXBarSpec.

◆ ternaryMatchTotalBytes()

int TofinoIXBarSpec::ternaryMatchTotalBytes ( ) const
overridevirtual

Implements IXBarSpec.

◆ tofinoMeterAluByteOffset()

int TofinoIXBarSpec::tofinoMeterAluByteOffset ( ) const
overridevirtual

Reimplemented from IXBarSpec.

◆ xcmpMatchTotalBytes()

int TofinoIXBarSpec::xcmpMatchTotalBytes ( ) const
overridevirtual

Implements IXBarSpec.

Member Data Documentation

◆ SELECT_BIT_RANGE

le_bitrange TofinoIXBarSpec::SELECT_BIT_RANGE
staticconstexpr
Initial value:
=
P4::le_bitrange(RAM_SELECT_BIT_START, METER_ALU_HASH_BITS - 1)

Copyright (C) 2024 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

SPDX-License-Identifier: Apache-2.0