blob: 05003b930959666a0a042cd729903923c2e9fde0 [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
33
34/*
35 * Bitmap of input ports
36 *
37 * The representation is not straightforward, but it works with existing OXM
38 * semantics.
39 *
40 * The value should always be zero. The mask should be unset in every bit position
41 * where the corresponding input port is allowed, and set in all other bits.
42 * As a special case, the highest bit in the mask is reserved for higher port
43 * numbers than can be represented in the bitmap.
44 *
45 * The value1 and value_mask1 fields contain the most significant bits. value2
46 * and value_mask2 contain the least significant bits.
47 *
48 * Pseudocode for populating value or mask:
49 * bitmap |= in_port < 128 ? (1 << in_port) : (1 << 127)
50 */
51
52struct of_oxm_bsn_in_ports_128 : of_oxm {
53 uint32_t type_len == 0x00030020;
54 of_bitmap_128_t value;
55};
56
57struct of_oxm_bsn_in_ports_128_masked : of_oxm {
58 uint32_t type_len == 0x00030120;
59 of_bitmap_128_t value;
60 of_bitmap_128_t value_mask;
61};