package com.bigswitch.floodlight.vendor; import org.jboss.netty.buffer.ChannelBuffer; public class OFBsnL2TableVendorData extends OFBigSwitchVendorData { /* * uint8_t l2_table_enable; // 1 == enabled, 0 == disabled * uint8_t pad; * uint16_t l2_table_priority; // priority of all flows in L2 table * uint8_t pad[4]; */ protected boolean l2TableEnabled; protected short l2TablePriority; public OFBsnL2TableVendorData(int dataType) { super(dataType); this.l2TableEnabled = false; this.l2TablePriority = (short)0; } public OFBsnL2TableVendorData(int dataType, boolean l2TableEnabled, short l2TablePriority) { super(dataType); this.l2TableEnabled = l2TableEnabled; this.l2TablePriority = l2TablePriority; } public boolean isL2TableEnabled() { return l2TableEnabled; } public short getL2TablePriority() { return l2TablePriority; } public void setL2TableEnabled(boolean l2TableEnabled) { this.l2TableEnabled = l2TableEnabled; } public void setL2TablePriority(short l2TablePriority) { this.l2TablePriority = l2TablePriority; } @Override public int getLength() { return super.getLength() + 8; // 8 additional bytes } /* * (non-Javadoc) * @see com.bigswitch.floodlight.vendor.OFBigSwitchVendorData#readFrom(org.jboss.netty.buffer.ChannelBuffer, int) */ @Override public void readFrom(ChannelBuffer data, int length) { super.readFrom(data, length); l2TableEnabled = (data.readByte() == 0) ? false : true; data.readByte(); // pad l2TablePriority = data.readShort(); data.readInt(); // 4 bad bytes } /* * (non-Javadoc) * @see com.bigswitch.floodlight.vendor.OFBigSwitchVendorData#writeTo(org.jboss.netty.buffer.ChannelBuffer) */ @Override public void writeTo(ChannelBuffer data) { super.writeTo(data); data.writeByte(isL2TableEnabled() ? 1 : 0); data.writeByte(0); // pad data.writeShort(l2TablePriority); data.writeInt(0); // 4 pad bytes } }