// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
// Copyright (c) 2011, 2012 Open Networking Foundation
// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
// This library was generated by the LoxiGen Compiler.
// See the file LICENSE.txt which should have been included in the source distribution

// Automatically generated by LOXI from template of_factory_interface.java
// Do not modify

package org.projectfloodlight.openflow.protocol.bsntlv;

import org.projectfloodlight.openflow.protocol.*;
import org.projectfloodlight.openflow.protocol.action.*;
import org.projectfloodlight.openflow.protocol.actionid.*;
import org.projectfloodlight.openflow.protocol.bsntlv.*;
import org.projectfloodlight.openflow.protocol.errormsg.*;
import org.projectfloodlight.openflow.protocol.meterband.*;
import org.projectfloodlight.openflow.protocol.instruction.*;
import org.projectfloodlight.openflow.protocol.instructionid.*;
import org.projectfloodlight.openflow.protocol.match.*;
import org.projectfloodlight.openflow.protocol.oxm.*;
import org.projectfloodlight.openflow.protocol.queueprop.*;
import org.projectfloodlight.openflow.types.*;
import org.projectfloodlight.openflow.util.*;
import org.projectfloodlight.openflow.exceptions.*;

public interface OFBsnTlvs {
    // Subfactories

    OFBsnTlvBroadcastQueryTimeout.Builder buildBroadcastQueryTimeout() throws UnsupportedOperationException;
    OFBsnTlvBroadcastQueryTimeout broadcastQueryTimeout(long value);
    OFBsnTlvCircuitId.Builder buildCircuitId() throws UnsupportedOperationException;
    OFBsnTlvCircuitId circuitId(byte[] value);
    OFBsnTlvIdleNotification idleNotification();
    OFBsnTlvIdleTime.Builder buildIdleTime() throws UnsupportedOperationException;
    OFBsnTlvIdleTime idleTime(U64 value);
    OFBsnTlvIdleTimeout.Builder buildIdleTimeout() throws UnsupportedOperationException;
    OFBsnTlvIdleTimeout idleTimeout(long value);
    OFBsnTlvIpv4.Builder buildIpv4() throws UnsupportedOperationException;
    OFBsnTlvIpv4 ipv4(IPv4Address value);
    OFBsnTlvMac.Builder buildMac() throws UnsupportedOperationException;
    OFBsnTlvMac mac(MacAddress value);
    OFBsnTlvMissPackets.Builder buildMissPackets() throws UnsupportedOperationException;
    OFBsnTlvMissPackets missPackets(U64 value);
    OFBsnTlvPort.Builder buildPort() throws UnsupportedOperationException;
    OFBsnTlvPort port(OFPort value);
    OFBsnTlvReplyPackets.Builder buildReplyPackets() throws UnsupportedOperationException;
    OFBsnTlvReplyPackets replyPackets(U64 value);
    OFBsnTlvRequestPackets.Builder buildRequestPackets() throws UnsupportedOperationException;
    OFBsnTlvRequestPackets requestPackets(U64 value);
    OFBsnTlvRxPackets.Builder buildRxPackets() throws UnsupportedOperationException;
    OFBsnTlvRxPackets rxPackets(U64 value);
    OFBsnTlvTxPackets.Builder buildTxPackets() throws UnsupportedOperationException;
    OFBsnTlvTxPackets txPackets(U64 value);
    OFBsnTlvUnicastQueryTimeout.Builder buildUnicastQueryTimeout() throws UnsupportedOperationException;
    OFBsnTlvUnicastQueryTimeout unicastQueryTimeout(long value);
    OFBsnTlvVlanVid.Builder buildVlanVid() throws UnsupportedOperationException;
    OFBsnTlvVlanVid vlanVid(VlanVid value);

    OFMessageReader<OFBsnTlv> getReader();
    OFVersion getVersion();
}
