blob: bb4c030471c88ca91cddf99ac2fdac831d57ddef [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
Rich Laned8d29c92013-09-24 13:46:42 -070034
35/*
36 * Bitmap of input ports
37 *
38 * The representation is not straightforward, but it works with existing OXM
39 * semantics.
40 *
41 * The value should always be zero. The mask should be unset in every bit position
42 * where the corresponding input port is allowed, and set in all other bits.
43 * As a special case, the highest bit in the mask is reserved for higher port
44 * numbers than can be represented in the bitmap.
45 *
46 * The value1 and value_mask1 fields contain the most significant bits. value2
47 * and value_mask2 contain the least significant bits.
48 *
49 * Pseudocode for populating value or mask:
50 * bitmap |= in_port < 128 ? (1 << in_port) : (1 << 127)
51 */
52
53struct of_oxm_bsn_in_ports_128 : of_oxm {
Rich Lanea62cb582013-12-10 15:52:39 -080054 uint32_t type_len == 0x00030010;
Rich Laned8d29c92013-09-24 13:46:42 -070055 of_bitmap_128_t value;
56};
57
58struct of_oxm_bsn_in_ports_128_masked : of_oxm {
59 uint32_t type_len == 0x00030120;
60 of_bitmap_128_t value;
61 of_bitmap_128_t value_mask;
62};
Rich Lane931eab32014-11-13 15:42:29 -080063
64struct of_oxm_bsn_in_ports_512 : of_oxm {
65 uint32_t type_len == 0x00032640;
66 of_bitmap_512_t value;
67};
68
69struct of_oxm_bsn_in_ports_512_masked : of_oxm {
70 uint32_t type_len == 0x00032780;
71 of_bitmap_512_t value;
72 of_bitmap_512_t value_mask;
73};