blob: 132d6d602667a27030c43b0af0f2adff39fc74bc [file] [log] [blame]
Rich Laned8d29c92013-09-24 13:46:42 -07001// Copyright 2013, Big Switch Networks, Inc.
2//
3// LoxiGen is licensed under the Eclipse Public License,
4// version 1.0 (EPL), with the following special exception:
5//
6// LOXI Exception
7//
8// As a special exception to the terms of the EPL, you may
9// distribute libraries generated by LoxiGen (LoxiGen Libraries)
10// under the terms of your choice, provided that copyright and
11// licensing notices generated by LoxiGen are not altered or removed
12// from the LoxiGen Libraries and the notice provided below is (i)
13// included in the LoxiGen Libraries, if distributed in source code
14// form and (ii) included in any documentation for the LoxiGen
15// Libraries, if distributed in binary form.
16//
17// Notice: "Copyright 2013, Big Switch Networks, Inc.
18// This library was generated by the LoxiGen Compiler."
19//
20// You may not use this file except in compliance with the EPL or
21// LOXI Exception. You may obtain a copy of the EPL at:
22//
23// http://www.eclipse.org/legal/epl-v10.html
24//
25// Unless required by applicable law or agreed to in writing,
26// software distributed under the License is distributed on an "AS
27// IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
28// express or implied. See the EPL for the specific language
29// governing permissions and limitations under the EPL.
30
31#version 3
32#version 4
Rich Lane4b1d8f42014-10-31 15:25:14 -070033#version 5
Murat Parlakisikf95672c2016-12-05 00:53:17 -080034#version 6
Rich Laned8d29c92013-09-24 13:46:42 -070035
36/*
37 * Bitmap of input ports
38 *
39 * The representation is not straightforward, but it works with existing OXM
40 * semantics.
41 *
42 * The value should always be zero. The mask should be unset in every bit position
43 * where the corresponding input port is allowed, and set in all other bits.
44 * As a special case, the highest bit in the mask is reserved for higher port
45 * numbers than can be represented in the bitmap.
46 *
47 * The value1 and value_mask1 fields contain the most significant bits. value2
48 * and value_mask2 contain the least significant bits.
49 *
50 * Pseudocode for populating value or mask:
51 * bitmap |= in_port < 128 ? (1 << in_port) : (1 << 127)
52 */
53
54struct of_oxm_bsn_in_ports_128 : of_oxm {
Rich Lanea62cb582013-12-10 15:52:39 -080055 uint32_t type_len == 0x00030010;
Rich Laned8d29c92013-09-24 13:46:42 -070056 of_bitmap_128_t value;
57};
58
59struct of_oxm_bsn_in_ports_128_masked : of_oxm {
60 uint32_t type_len == 0x00030120;
61 of_bitmap_128_t value;
62 of_bitmap_128_t value_mask;
63};
Rich Lane931eab32014-11-13 15:42:29 -080064
65struct of_oxm_bsn_in_ports_512 : of_oxm {
66 uint32_t type_len == 0x00032640;
67 of_bitmap_512_t value;
68};
69
70struct of_oxm_bsn_in_ports_512_masked : of_oxm {
71 uint32_t type_len == 0x00032780;
72 of_bitmap_512_t value;
73 of_bitmap_512_t value_mask;
74};