blob: e2f473fdd8a4ee3c90bf2d08030663b78045f984 [file] [log] [blame]
Rich Lanea06d0c32013-03-25 08:52:03 -07001// Copyright 2013, Big Switch Networks, Inc.
2//
3// LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
4// the following special exception:
5//
6// LOXI Exception
7//
8// As a special exception to the terms of the EPL, you may distribute libraries
9// generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
10// that copyright and licensing notices generated by LoxiGen are not altered or removed
11// from the LoxiGen Libraries and the notice provided below is (i) included in
12// the LoxiGen Libraries, if distributed in source code form and (ii) included in any
13// documentation for the LoxiGen Libraries, if distributed in binary form.
14//
15// Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
16//
17// You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
18// a copy of the EPL at:
19//
20// http://www.eclipse.org/legal/epl-v10.html
21//
22// Unless required by applicable law or agreed to in writing, software
23// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
24// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
25// EPL for the specific language governing permissions and limitations
26// under the EPL.
27
28#version any
29
30// BSN mirror action
Rich Lanee9c37db2013-06-21 18:30:24 -070031struct of_action_bsn_mirror : of_action_bsn {
Rich Lane31b87142013-05-09 22:05:42 -070032 uint16_t type == 65535;
Rich Lanea06d0c32013-03-25 08:52:03 -070033 uint16_t len;
Rich Lane31b87142013-05-09 22:05:42 -070034 uint32_t experimenter == 0x5c16c7;
35 uint32_t subtype == 1;
Rich Lanea06d0c32013-03-25 08:52:03 -070036 uint32_t dest_port; // mirror destination port
37 uint32_t vlan_tag; // VLAN tag for mirrored packet (TPID+TCI) (0 == none)
38 uint8_t copy_stage; // 0 == ingress, 1 == egress
Rich Lanee2af4ee2013-05-09 11:04:06 -070039 pad(3);
Rich Lanea06d0c32013-03-25 08:52:03 -070040};
41
42// BSN mirroring messages
Rich Lanee9c37db2013-06-21 18:30:24 -070043struct of_bsn_set_mirroring : of_bsn_header {
Rich Lanea06d0c32013-03-25 08:52:03 -070044 uint8_t version;
Rich Lane31b87142013-05-09 22:05:42 -070045 uint8_t type == 4;
Rich Lanea06d0c32013-03-25 08:52:03 -070046 uint16_t length;
47 uint32_t xid;
Rich Lane31b87142013-05-09 22:05:42 -070048 uint32_t experimenter == 0x5c16c7;
49 uint32_t subtype == 3;
Rich Lanea06d0c32013-03-25 08:52:03 -070050 uint8_t report_mirror_ports;
Rich Lanee2af4ee2013-05-09 11:04:06 -070051 pad(3);
Rich Lanea06d0c32013-03-25 08:52:03 -070052};
53
Rich Lanee9c37db2013-06-21 18:30:24 -070054struct of_bsn_get_mirroring_request : of_bsn_header {
Rich Lanea06d0c32013-03-25 08:52:03 -070055 uint8_t version;
Rich Lane31b87142013-05-09 22:05:42 -070056 uint8_t type == 4;
Rich Lanea06d0c32013-03-25 08:52:03 -070057 uint16_t length;
58 uint32_t xid;
Rich Lane31b87142013-05-09 22:05:42 -070059 uint32_t experimenter == 0x5c16c7;
60 uint32_t subtype == 4;
Rich Lanea06d0c32013-03-25 08:52:03 -070061 uint8_t report_mirror_ports;
Rich Lanee2af4ee2013-05-09 11:04:06 -070062 pad(3);
Rich Lanea06d0c32013-03-25 08:52:03 -070063};
64
Rich Lanee9c37db2013-06-21 18:30:24 -070065struct of_bsn_get_mirroring_reply : of_bsn_header {
Rich Lanea06d0c32013-03-25 08:52:03 -070066 uint8_t version;
Rich Lane31b87142013-05-09 22:05:42 -070067 uint8_t type == 4;
Rich Lanea06d0c32013-03-25 08:52:03 -070068 uint16_t length;
69 uint32_t xid;
Rich Lane31b87142013-05-09 22:05:42 -070070 uint32_t experimenter == 0x5c16c7;
71 uint32_t subtype == 5;
Rich Lanea06d0c32013-03-25 08:52:03 -070072 uint8_t report_mirror_ports;
Rich Lanee2af4ee2013-05-09 11:04:06 -070073 pad(3);
Rich Lanea06d0c32013-03-25 08:52:03 -070074};