P4C
The P4 Compiler
Loading...
Searching...
No Matches
tc_defines.h
1/*
2 * Copyright (C) 2023 Intel Corporation
3 * SPDX-FileCopyrightText: 2023 Intel Corporation
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8#ifndef BACKENDS_TC_TC_DEFINES_H_
9#define BACKENDS_TC_TC_DEFINES_H_
10
11namespace P4::TC {
12
13inline constexpr auto DEFAULT_TABLE_ENTRIES = 1024;
14inline constexpr auto DEFAULT_KEY_MASK = 8;
15inline constexpr auto DEFAULT_KEY_MASK_EXACT = 1;
16inline constexpr auto PORTID_BITWIDTH = 32;
17inline constexpr auto DEFAULT_KEY_ID = 1;
18inline constexpr auto DEFAULT_METADATA_ID = 1;
19inline constexpr auto BITWIDTH = 32;
20inline constexpr auto DEFAULT_TIMER_PROFILES = 4;
21
22// Default Access Permissons
23inline constexpr auto DEFAULT_TABLE_CONTROL_PATH_ACCESS = "CRUDPS";
24inline constexpr auto DEFAULT_TABLE_DATA_PATH_ACCESS = "RX";
25inline constexpr auto DEFAULT_ADD_ON_MISS_TABLE_CONTROL_PATH_ACCESS = "CRUDPS";
26inline constexpr auto DEFAULT_ADD_ON_MISS_TABLE_DATA_PATH_ACCESS = "CRXP";
27inline constexpr auto DEFAULT_EXTERN_CONTROL_PATH_ACCESS = "RUPS";
28inline constexpr auto DEFAULT_EXTERN_DATA_PATH_ACCESS = "RUXP";
29
30// Supported data types.
31inline constexpr auto BIT_TYPE = 0;
32inline constexpr auto DEV_TYPE = 1;
33inline constexpr auto MACADDR_TYPE = 2;
34inline constexpr auto IPV4_TYPE = 3;
35inline constexpr auto IPV6_TYPE = 4;
36inline constexpr auto BE16_TYPE = 5;
37inline constexpr auto BE32_TYPE = 6;
38inline constexpr auto BE64_TYPE = 7;
39
40inline constexpr auto PARAM_INDEX_0 = 0;
41inline constexpr auto PARAM_INDEX_1 = 1;
42inline constexpr auto PARAM_INDEX_2 = 2;
43inline constexpr auto PARAM_INDEX_3 = 3;
44
45inline constexpr auto SET = 1;
46inline constexpr auto RESET = 0;
47
48// PNA parser metadata fields.
49inline constexpr auto PARSER_RECIRCULATED = 0;
50inline constexpr auto PARSER_INPUT_PORT = 1;
51
52// PNA input metadata fields.
53inline constexpr auto INPUT_RECIRCULATED = 0;
54inline constexpr auto INPUT_TIMESTAMP = 1;
55inline constexpr auto INPUT_PARSER_ERROR = 2;
56inline constexpr auto INPUT_CLASS_OF_SERVICE = 3;
57inline constexpr auto INPUT_INPUT_PORT = 4;
58
59// PNA output metadata fields.
60inline constexpr auto OUTPUT_CLASS_OF_SERVICE = 0;
61
62// Kernel metadata fields.
63inline constexpr auto UNDEFINED = 0;
64inline constexpr auto UNSUPPORTED = 1;
65inline constexpr auto SKBREDIR = 2;
66inline constexpr auto SKBIIF = 3;
67inline constexpr auto SKBTSTAMP = 4;
68inline constexpr auto SKBPRIO = 5;
69
70inline constexpr auto MAX_PNA_PARSER_META = 2;
71inline constexpr auto MAX_PNA_INPUT_META = 5;
72inline constexpr auto MAX_PNA_OUTPUT_META = 1;
73
74inline constexpr auto TABLEDEFAULT = 0;
75inline constexpr auto TABLEONLY = 1;
76inline constexpr auto DEFAULTONLY = 2;
77
78inline constexpr auto EXACT_TYPE = 0;
79inline constexpr auto LPM_TYPE = 1;
80inline constexpr auto TERNARY_TYPE = 2;
81
82inline constexpr auto NONE = 0;
83inline constexpr auto IN = 1;
84inline constexpr auto OUT = 2;
85inline constexpr auto INOUT = 3;
86} // namespace P4::TC
87
88#endif /* BACKENDS_TC_TC_DEFINES_H_ */
This file defines functions for the pass to generate the introspection file.
Definition tc/backend.cpp:17