/* * Copyright (c) 2011,2013 Big Switch Networks, Inc. * * Licensed under the Eclipse Public License, Version 1.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License 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 License for the specific language governing * permissions and limitations under the License. * * This file incorporates work covered by the following copyright and * permission notice: * * Originally created by David Erickson & Rob Sherwood, Stanford University * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * 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 License for the specific language * governing permissions and limitations under the License. */ package org.openflow.vendor.nicira; import org.jboss.netty.buffer.ChannelBuffer; import org.openflow.protocol.vendor.OFVendorData; /** * Base class for vendor data corresponding to a Nicira vendor extension. * Nicira vendor data always starts with a 4-byte integer data type value. * * @author Rob Vaterlaus (rob.vaterlaus@bigswitch.com) */ public class OFNiciraVendorData implements OFVendorData { public static final int NX_VENDOR_ID = 0x00002320; /** * The value of the integer data type at the beginning of the vendor data */ protected int dataType; /** * Construct empty (i.e. unspecified data type) Nicira vendor data. */ public OFNiciraVendorData() { } /** * Contruct Nicira vendor data with the specified data type * @param dataType the data type value at the beginning of the vendor data. */ public OFNiciraVendorData(int dataType) { this.dataType = dataType; } /** * Get the data type value at the beginning of the vendor data * @return the integer data type value */ public int getDataType() { return dataType; } /** * Set the data type value * @param dataType the integer data type value at the beginning of the * vendor data. */ public void setDataType(int dataType) { this.dataType = dataType; } /** * Get the length of the vendor data. This implementation will normally * be the superclass for another class that will override this to return * the overall vendor data length. This implementation just returns the * length of the part that includes the 4-byte integer data type value * at the beginning of the vendor data. */ @Override public int getLength() { return 4; } /** * Read the vendor data from the ChannelBuffer * @param data the channel buffer from which we're deserializing * @param length the length to the end of the enclosing message */ @Override public void readFrom(ChannelBuffer data, int length) { dataType = data.readInt(); } /** * Write the vendor data to the ChannelBuffer * @param data the channel buffer to which we're serializing */ @Override public void writeTo(ChannelBuffer data) { data.writeInt(dataType); } }