blob: 00e6b65d39ac680826aaa4a55c4a394281648484 [file] [log] [blame]
// Copyright 2013, Big Switch Networks, Inc.
//
// LoxiGen is licensed under the Eclipse Public License, version 1.0 (EPL), with
// the following special exception:
//
// LOXI Exception
//
// As a special exception to the terms of the EPL, you may distribute libraries
// generated by LoxiGen (LoxiGen Libraries) under the terms of your choice, provided
// that copyright and licensing notices generated by LoxiGen are not altered or removed
// from the LoxiGen Libraries and the notice provided below is (i) included in
// the LoxiGen Libraries, if distributed in source code form and (ii) included in any
// documentation for the LoxiGen Libraries, if distributed in binary form.
//
// Notice: "Copyright 2013, Big Switch Networks, Inc. This library was generated by the LoxiGen Compiler."
//
// You may not use this file except in compliance with the EPL or LOXI Exception. You may obtain
// a copy of the EPL at:
//
// http://www.eclipse.org/legal/epl-v10.html
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// EPL for the specific language governing permissions and limitations
// under the EPL.
#version any
// This extension enables the switch to send only one packet-in for a given flow.
// The goal is to reduce the load on the controller, particularly in the case of
// large UDP streams.
//
// When this extension is enabled (by sending the bsn_set_pktin_suppression message
// described below with enabled=1) the switch will install an exact-match drop
// flow for each packet-in. This flow has the idle_timeout, hard_timeout,
// priority, and cookie fields set to the values given in the
// bsn_set_pktin_suppression message.
//
// This extension does not affect packet-ins caused by an output to
// OFPP_CONTROLLER.
//
// When this extension is enabled the switch may still send multiple packet-ins
// for the same flow.
//
// This extension keeps its configuration across controller disconnects. When a
// controller that is aware of this extension connects to a switch it should send
// a DELETE flow-mod with the cookie field set to ensure that it receives
// packet-ins for ongoing flows.
//
// The flows installed by this extension are not automatically deleted when the
// extension is disabled. Similarly other configuration changes (cookie, etc) do
// not affect already-installed flows.
//
// The switch should reject the message if both 'hard_timeout' and 'idle_timeout'
// are zero, since the suppression flows would never expire.
struct of_bsn_set_pktin_suppression_request {
uint8_t version;
uint8_t type == 4;
uint16_t length;
uint32_t xid;
uint32_t experimenter == 0x5c16c7;
uint32_t subtype == 11;
uint8_t enabled;
pad(1);
uint16_t idle_timeout;
uint16_t hard_timeout;
uint16_t priority;
uint64_t cookie;
};
struct of_bsn_set_pktin_suppression_reply {
uint8_t version;
uint8_t type == 4;
uint16_t length;
uint32_t xid;
uint32_t experimenter == 0x5c16c7;
uint32_t subtype == 25;
uint8_t status; // 0 means success
};