// Code generated by protoc-gen-go. DO NOT EDIT.
// source: fibcapi.proto

package fibcapi

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// FF Message types
type FFM int32

const (
	FFM_UNSPEC               FFM = 0
	FFM_HELLO                FFM = 1
	FFM_PORT_STATUS          FFM = 2
	FFM_PORT_CONFIG          FFM = 3
	FFM_FLOW_MOD             FFM = 4
	FFM_GROUP_MOD            FFM = 5
	FFM_DP_STATUS            FFM = 6
	FFM_FF_HELLO             FFM = 7
	FFM_FF_MULTIPART_REQUEST FFM = 8
	FFM_FF_MULTIPART_REPLY   FFM = 9
	FFM_FF_PACKET_IN         FFM = 10
	FFM_FF_PACKET_OUT        FFM = 11
	FFM_FF_PORT_STATUS       FFM = 12
	FFM_FF_PORT_MOD          FFM = 13
	FFM_L2ADDR_STATUS        FFM = 14
	FFM_FF_L2ADDR_STATUS     FFM = 15
	FFM_AP_MON_REPLY         FFM = 17
	FFM_VM_MON_REPLT         FFM = 18
	FFM_DP_MON_REPLY         FFM = 19
	FFM_VS_MON_REPLY         FFM = 20
	FFM_OAM_REQUEST          FFM = 21
	FFM_OAM_REPLY            FFM = 22
)

var FFM_name = map[int32]string{
	0:  "UNSPEC",
	1:  "HELLO",
	2:  "PORT_STATUS",
	3:  "PORT_CONFIG",
	4:  "FLOW_MOD",
	5:  "GROUP_MOD",
	6:  "DP_STATUS",
	7:  "FF_HELLO",
	8:  "FF_MULTIPART_REQUEST",
	9:  "FF_MULTIPART_REPLY",
	10: "FF_PACKET_IN",
	11: "FF_PACKET_OUT",
	12: "FF_PORT_STATUS",
	13: "FF_PORT_MOD",
	14: "L2ADDR_STATUS",
	15: "FF_L2ADDR_STATUS",
	17: "AP_MON_REPLY",
	18: "VM_MON_REPLT",
	19: "DP_MON_REPLY",
	20: "VS_MON_REPLY",
	21: "OAM_REQUEST",
	22: "OAM_REPLY",
}

var FFM_value = map[string]int32{
	"UNSPEC":               0,
	"HELLO":                1,
	"PORT_STATUS":          2,
	"PORT_CONFIG":          3,
	"FLOW_MOD":             4,
	"GROUP_MOD":            5,
	"DP_STATUS":            6,
	"FF_HELLO":             7,
	"FF_MULTIPART_REQUEST": 8,
	"FF_MULTIPART_REPLY":   9,
	"FF_PACKET_IN":         10,
	"FF_PACKET_OUT":        11,
	"FF_PORT_STATUS":       12,
	"FF_PORT_MOD":          13,
	"L2ADDR_STATUS":        14,
	"FF_L2ADDR_STATUS":     15,
	"AP_MON_REPLY":         17,
	"VM_MON_REPLT":         18,
	"DP_MON_REPLY":         19,
	"VS_MON_REPLY":         20,
	"OAM_REQUEST":          21,
	"OAM_REPLY":            22,
}

func (x FFM) String() string {
	return proto.EnumName(FFM_name, int32(x))
}

func (FFM) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{0}
}

type DpStatus_Status int32

const (
	DpStatus_NOP   DpStatus_Status = 0
	DpStatus_ENTER DpStatus_Status = 1
	DpStatus_LEAVE DpStatus_Status = 2
)

var DpStatus_Status_name = map[int32]string{
	0: "NOP",
	1: "ENTER",
	2: "LEAVE",
}

var DpStatus_Status_value = map[string]int32{
	"NOP":   0,
	"ENTER": 1,
	"LEAVE": 2,
}

func (x DpStatus_Status) String() string {
	return proto.EnumName(DpStatus_Status_name, int32(x))
}

func (DpStatus_Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{1, 0}
}

type TunnelType_Type int32

const (
	TunnelType_NOP  TunnelType_Type = 0
	TunnelType_IPIP TunnelType_Type = 1
	TunnelType_IPV6 TunnelType_Type = 2
	TunnelType_GRE4 TunnelType_Type = 3
	TunnelType_GRE6 TunnelType_Type = 4
)

var TunnelType_Type_name = map[int32]string{
	0: "NOP",
	1: "IPIP",
	2: "IPV6",
	3: "GRE4",
	4: "GRE6",
}

var TunnelType_Type_value = map[string]int32{
	"NOP":  0,
	"IPIP": 1,
	"IPV6": 2,
	"GRE4": 3,
	"GRE6": 4,
}

func (x TunnelType_Type) String() string {
	return proto.EnumName(TunnelType_Type_name, int32(x))
}

func (TunnelType_Type) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{2, 0}
}

type BridgeVlanInfo_Flags int32

const (
	BridgeVlanInfo_NOP         BridgeVlanInfo_Flags = 0
	BridgeVlanInfo_MASTER      BridgeVlanInfo_Flags = 1
	BridgeVlanInfo_PVID        BridgeVlanInfo_Flags = 2
	BridgeVlanInfo_UNTAGGED    BridgeVlanInfo_Flags = 4
	BridgeVlanInfo_RANGE_BEGIN BridgeVlanInfo_Flags = 8
	BridgeVlanInfo_RANGE_END   BridgeVlanInfo_Flags = 16
)

var BridgeVlanInfo_Flags_name = map[int32]string{
	0:  "NOP",
	1:  "MASTER",
	2:  "PVID",
	4:  "UNTAGGED",
	8:  "RANGE_BEGIN",
	16: "RANGE_END",
}

var BridgeVlanInfo_Flags_value = map[string]int32{
	"NOP":         0,
	"MASTER":      1,
	"PVID":        2,
	"UNTAGGED":    4,
	"RANGE_BEGIN": 8,
	"RANGE_END":   16,
}

func (x BridgeVlanInfo_Flags) String() string {
	return proto.EnumName(BridgeVlanInfo_Flags_name, int32(x))
}

func (BridgeVlanInfo_Flags) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{3, 0}
}

type PortStatus_Status int32

const (
	PortStatus_NOP  PortStatus_Status = 0
	PortStatus_UP   PortStatus_Status = 1
	PortStatus_DOWN PortStatus_Status = 2
)

var PortStatus_Status_name = map[int32]string{
	0: "NOP",
	1: "UP",
	2: "DOWN",
}

var PortStatus_Status_value = map[string]int32{
	"NOP":  0,
	"UP":   1,
	"DOWN": 2,
}

func (x PortStatus_Status) String() string {
	return proto.EnumName(PortStatus_Status_name, int32(x))
}

func (PortStatus_Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{4, 0}
}

type LinkType_Type int32

const (
	LinkType_DEVICE       LinkType_Type = 0
	LinkType_IPTUN        LinkType_Type = 1
	LinkType_BRIDGE       LinkType_Type = 2
	LinkType_BRIDGE_SLAVE LinkType_Type = 3
	LinkType_BOND         LinkType_Type = 4
	LinkType_BOND_SLAVE   LinkType_Type = 5
)

var LinkType_Type_name = map[int32]string{
	0: "DEVICE",
	1: "IPTUN",
	2: "BRIDGE",
	3: "BRIDGE_SLAVE",
	4: "BOND",
	5: "BOND_SLAVE",
}

var LinkType_Type_value = map[string]int32{
	"DEVICE":       0,
	"IPTUN":        1,
	"BRIDGE":       2,
	"BRIDGE_SLAVE": 3,
	"BOND":         4,
	"BOND_SLAVE":   5,
}

func (x LinkType_Type) String() string {
	return proto.EnumName(LinkType_Type_name, int32(x))
}

func (LinkType_Type) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{5, 0}
}

type PortConfig_Cmd int32

const (
	PortConfig_NOP    PortConfig_Cmd = 0
	PortConfig_ADD    PortConfig_Cmd = 1
	PortConfig_MODIFY PortConfig_Cmd = 2
	PortConfig_DELETE PortConfig_Cmd = 3
)

var PortConfig_Cmd_name = map[int32]string{
	0: "NOP",
	1: "ADD",
	2: "MODIFY",
	3: "DELETE",
}

var PortConfig_Cmd_value = map[string]int32{
	"NOP":    0,
	"ADD":    1,
	"MODIFY": 2,
	"DELETE": 3,
}

func (x PortConfig_Cmd) String() string {
	return proto.EnumName(PortConfig_Cmd_name, int32(x))
}

func (PortConfig_Cmd) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{6, 0}
}

type FlowMod_Cmd int32

const (
	FlowMod_NOP           FlowMod_Cmd = 0
	FlowMod_ADD           FlowMod_Cmd = 1
	FlowMod_MODIFY        FlowMod_Cmd = 2
	FlowMod_MODIFY_STRICT FlowMod_Cmd = 3
	FlowMod_DELETE        FlowMod_Cmd = 4
	FlowMod_DELETE_STRICT FlowMod_Cmd = 5
)

var FlowMod_Cmd_name = map[int32]string{
	0: "NOP",
	1: "ADD",
	2: "MODIFY",
	3: "MODIFY_STRICT",
	4: "DELETE",
	5: "DELETE_STRICT",
}

var FlowMod_Cmd_value = map[string]int32{
	"NOP":           0,
	"ADD":           1,
	"MODIFY":        2,
	"MODIFY_STRICT": 3,
	"DELETE":        4,
	"DELETE_STRICT": 5,
}

func (x FlowMod_Cmd) String() string {
	return proto.EnumName(FlowMod_Cmd_name, int32(x))
}

func (FlowMod_Cmd) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{7, 0}
}

type FlowMod_Table int32

const (
	FlowMod_INGRESS_PORT      FlowMod_Table = 0
	FlowMod_VLAN              FlowMod_Table = 10
	FlowMod_TERM_MAC          FlowMod_Table = 20
	FlowMod_L3_TYPE           FlowMod_Table = 21
	FlowMod_MPLS0             FlowMod_Table = 23
	FlowMod_MPLS1             FlowMod_Table = 24
	FlowMod_MPLS2             FlowMod_Table = 25
	FlowMod_MPLS_L3_TYPE      FlowMod_Table = 27
	FlowMod_MPLS_LABEL_TRUST  FlowMod_Table = 28
	FlowMod_MPLS_TYPE         FlowMod_Table = 29
	FlowMod_UNICAST_ROUTING   FlowMod_Table = 30
	FlowMod_MULTICAST_ROUTING FlowMod_Table = 40
	FlowMod_BRIDGING          FlowMod_Table = 50
	FlowMod_POLICY_ACL        FlowMod_Table = 60
)

var FlowMod_Table_name = map[int32]string{
	0:  "INGRESS_PORT",
	10: "VLAN",
	20: "TERM_MAC",
	21: "L3_TYPE",
	23: "MPLS0",
	24: "MPLS1",
	25: "MPLS2",
	27: "MPLS_L3_TYPE",
	28: "MPLS_LABEL_TRUST",
	29: "MPLS_TYPE",
	30: "UNICAST_ROUTING",
	40: "MULTICAST_ROUTING",
	50: "BRIDGING",
	60: "POLICY_ACL",
}

var FlowMod_Table_value = map[string]int32{
	"INGRESS_PORT":      0,
	"VLAN":              10,
	"TERM_MAC":          20,
	"L3_TYPE":           21,
	"MPLS0":             23,
	"MPLS1":             24,
	"MPLS2":             25,
	"MPLS_L3_TYPE":      27,
	"MPLS_LABEL_TRUST":  28,
	"MPLS_TYPE":         29,
	"UNICAST_ROUTING":   30,
	"MULTICAST_ROUTING": 40,
	"BRIDGING":          50,
	"POLICY_ACL":        60,
}

func (x FlowMod_Table) String() string {
	return proto.EnumName(FlowMod_Table_name, int32(x))
}

func (FlowMod_Table) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{7, 1}
}

type GroupMod_Cmd int32

const (
	GroupMod_NOP    GroupMod_Cmd = 0
	GroupMod_ADD    GroupMod_Cmd = 1
	GroupMod_MODIFY GroupMod_Cmd = 2
	GroupMod_DELETE GroupMod_Cmd = 3
)

var GroupMod_Cmd_name = map[int32]string{
	0: "NOP",
	1: "ADD",
	2: "MODIFY",
	3: "DELETE",
}

var GroupMod_Cmd_value = map[string]int32{
	"NOP":    0,
	"ADD":    1,
	"MODIFY": 2,
	"DELETE": 3,
}

func (x GroupMod_Cmd) String() string {
	return proto.EnumName(GroupMod_Cmd_name, int32(x))
}

func (GroupMod_Cmd) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{8, 0}
}

type GroupMod_GType int32

const (
	GroupMod_UNSPEC           GroupMod_GType = 0
	GroupMod_L2_INTERFACE     GroupMod_GType = 1
	GroupMod_L2_REWRITE       GroupMod_GType = 16
	GroupMod_L3_UNICAST       GroupMod_GType = 32
	GroupMod_L2_MULTICAST     GroupMod_GType = 48
	GroupMod_L2_FLOOD         GroupMod_GType = 64
	GroupMod_L3_INTERFACE     GroupMod_GType = 80
	GroupMod_L3_MULTICAST     GroupMod_GType = 96
	GroupMod_L3_ECMP          GroupMod_GType = 112
	GroupMod_L2_OVERLAY_FL_UC GroupMod_GType = 128
	GroupMod_L2_OVERLAY_FL_MC GroupMod_GType = 129
	GroupMod_L2_OVERLAY_MC_UC GroupMod_GType = 130
	GroupMod_L2_OVERLAY_MC_MC GroupMod_GType = 131
	GroupMod_MPLS_INTERFACE   GroupMod_GType = 144
	GroupMod_MPLS_L2_VPN      GroupMod_GType = 145
	GroupMod_MPLS_L3_VPN      GroupMod_GType = 146
	GroupMod_MPLS_TUNNEL1     GroupMod_GType = 147
	GroupMod_MPLS_TUNNEL2     GroupMod_GType = 148
	GroupMod_MPLS_SWAP        GroupMod_GType = 149
	GroupMod_MPLS_FF          GroupMod_GType = 166
	GroupMod_MPLS_ECMP        GroupMod_GType = 168
	GroupMod_L2_UF_INTERFACE  GroupMod_GType = 176
)

var GroupMod_GType_name = map[int32]string{
	0:   "UNSPEC",
	1:   "L2_INTERFACE",
	16:  "L2_REWRITE",
	32:  "L3_UNICAST",
	48:  "L2_MULTICAST",
	64:  "L2_FLOOD",
	80:  "L3_INTERFACE",
	96:  "L3_MULTICAST",
	112: "L3_ECMP",
	128: "L2_OVERLAY_FL_UC",
	129: "L2_OVERLAY_FL_MC",
	130: "L2_OVERLAY_MC_UC",
	131: "L2_OVERLAY_MC_MC",
	144: "MPLS_INTERFACE",
	145: "MPLS_L2_VPN",
	146: "MPLS_L3_VPN",
	147: "MPLS_TUNNEL1",
	148: "MPLS_TUNNEL2",
	149: "MPLS_SWAP",
	166: "MPLS_FF",
	168: "MPLS_ECMP",
	176: "L2_UF_INTERFACE",
}

var GroupMod_GType_value = map[string]int32{
	"UNSPEC":           0,
	"L2_INTERFACE":     1,
	"L2_REWRITE":       16,
	"L3_UNICAST":       32,
	"L2_MULTICAST":     48,
	"L2_FLOOD":         64,
	"L3_INTERFACE":     80,
	"L3_MULTICAST":     96,
	"L3_ECMP":          112,
	"L2_OVERLAY_FL_UC": 128,
	"L2_OVERLAY_FL_MC": 129,
	"L2_OVERLAY_MC_UC": 130,
	"L2_OVERLAY_MC_MC": 131,
	"MPLS_INTERFACE":   144,
	"MPLS_L2_VPN":      145,
	"MPLS_L3_VPN":      146,
	"MPLS_TUNNEL1":     147,
	"MPLS_TUNNEL2":     148,
	"MPLS_SWAP":        149,
	"MPLS_FF":          166,
	"MPLS_ECMP":        168,
	"L2_UF_INTERFACE":  176,
}

func (x GroupMod_GType) String() string {
	return proto.EnumName(GroupMod_GType_name, int32(x))
}

func (GroupMod_GType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{8, 1}
}

type VLANFlow_Action_Name int32

const (
	VLANFlow_Action_UNSPEC           VLANFlow_Action_Name = 0
	VLANFlow_Action_SET_VLAN_VID     VLANFlow_Action_Name = 1
	VLANFlow_Action_SET_VRF          VLANFlow_Action_Name = 2
	VLANFlow_Action_SET_OVID         VLANFlow_Action_Name = 3
	VLANFlow_Action_SET_MPLS_TYPE    VLANFlow_Action_Name = 4
	VLANFlow_Action_PUSH_VLAN        VLANFlow_Action_Name = 5
	VLANFlow_Action_POP_VLAN         VLANFlow_Action_Name = 6
	VLANFlow_Action_SET_MPLS_L2_TYPE VLANFlow_Action_Name = 7
	VLANFlow_Action_SET_TUNNEL_ID    VLANFlow_Action_Name = 8
	VLANFlow_Action_SET_VLAN_L2_TYPE VLANFlow_Action_Name = 9
)

var VLANFlow_Action_Name_name = map[int32]string{
	0: "UNSPEC",
	1: "SET_VLAN_VID",
	2: "SET_VRF",
	3: "SET_OVID",
	4: "SET_MPLS_TYPE",
	5: "PUSH_VLAN",
	6: "POP_VLAN",
	7: "SET_MPLS_L2_TYPE",
	8: "SET_TUNNEL_ID",
	9: "SET_VLAN_L2_TYPE",
}

var VLANFlow_Action_Name_value = map[string]int32{
	"UNSPEC":           0,
	"SET_VLAN_VID":     1,
	"SET_VRF":          2,
	"SET_OVID":         3,
	"SET_MPLS_TYPE":    4,
	"PUSH_VLAN":        5,
	"POP_VLAN":         6,
	"SET_MPLS_L2_TYPE": 7,
	"SET_TUNNEL_ID":    8,
	"SET_VLAN_L2_TYPE": 9,
}

func (x VLANFlow_Action_Name) String() string {
	return proto.EnumName(VLANFlow_Action_Name_name, int32(x))
}

func (VLANFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{9, 1, 0}
}

type TerminationMacFlow_Action_Name int32

const (
	TerminationMacFlow_Action_UNSPEC TerminationMacFlow_Action_Name = 0
	TerminationMacFlow_Action_OUTPUT TerminationMacFlow_Action_Name = 1
)

var TerminationMacFlow_Action_Name_name = map[int32]string{
	0: "UNSPEC",
	1: "OUTPUT",
}

var TerminationMacFlow_Action_Name_value = map[string]int32{
	"UNSPEC": 0,
	"OUTPUT": 1,
}

func (x TerminationMacFlow_Action_Name) String() string {
	return proto.EnumName(TerminationMacFlow_Action_Name_name, int32(x))
}

func (TerminationMacFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{10, 1, 0}
}

type MPLSFlow_Action_Name int32

const (
	MPLSFlow_Action_UNSPEC               MPLSFlow_Action_Name = 0
	MPLSFlow_Action_POP_LABEL            MPLSFlow_Action_Name = 1
	MPLSFlow_Action_DEC_TTL              MPLSFlow_Action_Name = 2
	MPLSFlow_Action_COPY_TTL_IN          MPLSFlow_Action_Name = 3
	MPLSFlow_Action_COPY_TC_IN           MPLSFlow_Action_Name = 4
	MPLSFlow_Action_SET_VRF              MPLSFlow_Action_Name = 5
	MPLSFlow_Action_SET_MPLS_L2_PORT     MPLSFlow_Action_Name = 6
	MPLSFlow_Action_SET_MPLS_TYPE        MPLSFlow_Action_Name = 7
	MPLSFlow_Action_SET_TUNNEL_ID        MPLSFlow_Action_Name = 8
	MPLSFlow_Action_SET_QOS_INDEX        MPLSFlow_Action_Name = 9
	MPLSFlow_Action_SET_TRAFFIC_CLASS    MPLSFlow_Action_Name = 10
	MPLSFlow_Action_SET_L3_IN_PORT       MPLSFlow_Action_Name = 11
	MPLSFlow_Action_COPY_FIELD           MPLSFlow_Action_Name = 12
	MPLSFlow_Action_POP_CW_OR_ACH        MPLSFlow_Action_Name = 13
	MPLSFlow_Action_POP_VLAN             MPLSFlow_Action_Name = 14
	MPLSFlow_Action_POP_L2_HEADER        MPLSFlow_Action_Name = 15
	MPLSFlow_Action_SET_LMEP_ID          MPLSFlow_Action_Name = 16
	MPLSFlow_Action_SET_PROTECTION_INDEX MPLSFlow_Action_Name = 17
)

var MPLSFlow_Action_Name_name = map[int32]string{
	0:  "UNSPEC",
	1:  "POP_LABEL",
	2:  "DEC_TTL",
	3:  "COPY_TTL_IN",
	4:  "COPY_TC_IN",
	5:  "SET_VRF",
	6:  "SET_MPLS_L2_PORT",
	7:  "SET_MPLS_TYPE",
	8:  "SET_TUNNEL_ID",
	9:  "SET_QOS_INDEX",
	10: "SET_TRAFFIC_CLASS",
	11: "SET_L3_IN_PORT",
	12: "COPY_FIELD",
	13: "POP_CW_OR_ACH",
	14: "POP_VLAN",
	15: "POP_L2_HEADER",
	16: "SET_LMEP_ID",
	17: "SET_PROTECTION_INDEX",
}

var MPLSFlow_Action_Name_value = map[string]int32{
	"UNSPEC":               0,
	"POP_LABEL":            1,
	"DEC_TTL":              2,
	"COPY_TTL_IN":          3,
	"COPY_TC_IN":           4,
	"SET_VRF":              5,
	"SET_MPLS_L2_PORT":     6,
	"SET_MPLS_TYPE":        7,
	"SET_TUNNEL_ID":        8,
	"SET_QOS_INDEX":        9,
	"SET_TRAFFIC_CLASS":    10,
	"SET_L3_IN_PORT":       11,
	"COPY_FIELD":           12,
	"POP_CW_OR_ACH":        13,
	"POP_VLAN":             14,
	"POP_L2_HEADER":        15,
	"SET_LMEP_ID":          16,
	"SET_PROTECTION_INDEX": 17,
}

func (x MPLSFlow_Action_Name) String() string {
	return proto.EnumName(MPLSFlow_Action_Name_name, int32(x))
}

func (MPLSFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{11, 1, 0}
}

type UnicastRoutingFlow_Origin int32

const (
	UnicastRoutingFlow_UNSPEC UnicastRoutingFlow_Origin = 0
	UnicastRoutingFlow_NEIGH  UnicastRoutingFlow_Origin = 1
	UnicastRoutingFlow_ROUTE  UnicastRoutingFlow_Origin = 2
)

var UnicastRoutingFlow_Origin_name = map[int32]string{
	0: "UNSPEC",
	1: "NEIGH",
	2: "ROUTE",
}

var UnicastRoutingFlow_Origin_value = map[string]int32{
	"UNSPEC": 0,
	"NEIGH":  1,
	"ROUTE":  2,
}

func (x UnicastRoutingFlow_Origin) String() string {
	return proto.EnumName(UnicastRoutingFlow_Origin_name, int32(x))
}

func (UnicastRoutingFlow_Origin) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{12, 0}
}

type UnicastRoutingFlow_Action_Name int32

const (
	UnicastRoutingFlow_Action_UNSPEC        UnicastRoutingFlow_Action_Name = 0
	UnicastRoutingFlow_Action_OUTPUT        UnicastRoutingFlow_Action_Name = 1
	UnicastRoutingFlow_Action_CLEAR_ACTIONS UnicastRoutingFlow_Action_Name = 2
	UnicastRoutingFlow_Action_DEC_TTL       UnicastRoutingFlow_Action_Name = 3
)

var UnicastRoutingFlow_Action_Name_name = map[int32]string{
	0: "UNSPEC",
	1: "OUTPUT",
	2: "CLEAR_ACTIONS",
	3: "DEC_TTL",
}

var UnicastRoutingFlow_Action_Name_value = map[string]int32{
	"UNSPEC":        0,
	"OUTPUT":        1,
	"CLEAR_ACTIONS": 2,
	"DEC_TTL":       3,
}

func (x UnicastRoutingFlow_Action_Name) String() string {
	return proto.EnumName(UnicastRoutingFlow_Action_Name_name, int32(x))
}

func (UnicastRoutingFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{12, 1, 0}
}

type BridgingFlow_Action_Name int32

const (
	BridgingFlow_Action_UNSPEC BridgingFlow_Action_Name = 0
	BridgingFlow_Action_OUTPUT BridgingFlow_Action_Name = 1
)

var BridgingFlow_Action_Name_name = map[int32]string{
	0: "UNSPEC",
	1: "OUTPUT",
}

var BridgingFlow_Action_Name_value = map[string]int32{
	"UNSPEC": 0,
	"OUTPUT": 1,
}

func (x BridgingFlow_Action_Name) String() string {
	return proto.EnumName(BridgingFlow_Action_Name_name, int32(x))
}

func (BridgingFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{13, 1, 0}
}

type PolicyACLFlow_Action_Name int32

const (
	PolicyACLFlow_Action_UNSPEC PolicyACLFlow_Action_Name = 0
	PolicyACLFlow_Action_OUTPUT PolicyACLFlow_Action_Name = 1
)

var PolicyACLFlow_Action_Name_name = map[int32]string{
	0: "UNSPEC",
	1: "OUTPUT",
}

var PolicyACLFlow_Action_Name_value = map[string]int32{
	"UNSPEC": 0,
	"OUTPUT": 1,
}

func (x PolicyACLFlow_Action_Name) String() string {
	return proto.EnumName(PolicyACLFlow_Action_Name_name, int32(x))
}

func (PolicyACLFlow_Action_Name) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{14, 1, 0}
}

type FFHello_DpType int32

const (
	FFHello_NOP     FFHello_DpType = 0
	FFHello_OPENNSL FFHello_DpType = 1
	FFHello_FFVS    FFHello_DpType = 2
)

var FFHello_DpType_name = map[int32]string{
	0: "NOP",
	1: "OPENNSL",
	2: "FFVS",
}

var FFHello_DpType_value = map[string]int32{
	"NOP":     0,
	"OPENNSL": 1,
	"FFVS":    2,
}

func (x FFHello_DpType) String() string {
	return proto.EnumName(FFHello_DpType_name, int32(x))
}

func (FFHello_DpType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{19, 0}
}

type FFPortStats_Cmd int32

const (
	FFPortStats_GET   FFPortStats_Cmd = 0
	FFPortStats_START FFPortStats_Cmd = 1
	FFPortStats_STOP  FFPortStats_Cmd = 2
	FFPortStats_RESET FFPortStats_Cmd = 3
)

var FFPortStats_Cmd_name = map[int32]string{
	0: "GET",
	1: "START",
	2: "STOP",
	3: "RESET",
}

var FFPortStats_Cmd_value = map[string]int32{
	"GET":   0,
	"START": 1,
	"STOP":  2,
	"RESET": 3,
}

func (x FFPortStats_Cmd) String() string {
	return proto.EnumName(FFPortStats_Cmd_name, int32(x))
}

func (FFPortStats_Cmd) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{21, 0}
}

type OAM_OAMType int32

const (
	OAM_NOP             OAM_OAMType = 0
	OAM_AUDIT_ROUTE_CNT OAM_OAMType = 1
)

var OAM_OAMType_name = map[int32]string{
	0: "NOP",
	1: "AUDIT_ROUTE_CNT",
}

var OAM_OAMType_value = map[string]int32{
	"NOP":             0,
	"AUDIT_ROUTE_CNT": 1,
}

func (x OAM_OAMType) String() string {
	return proto.EnumName(OAM_OAMType_name, int32(x))
}

func (OAM_OAMType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22, 0}
}

type FFMultipart_MpType int32

const (
	FFMultipart_NOP           FFMultipart_MpType = 0
	FFMultipart_FLOW          FFMultipart_MpType = 1
	FFMultipart_AGGREGATE     FFMultipart_MpType = 2
	FFMultipart_TABLE         FFMultipart_MpType = 3
	FFMultipart_PORT          FFMultipart_MpType = 4
	FFMultipart_QUEUE         FFMultipart_MpType = 5
	FFMultipart_GROUP         FFMultipart_MpType = 6
	FFMultipart_GROUP_DESC    FFMultipart_MpType = 7
	FFMultipart_METER         FFMultipart_MpType = 9
	FFMultipart_METER_CONFIG  FFMultipart_MpType = 10
	FFMultipart_METER_FEATURE FFMultipart_MpType = 11
	FFMultipart_TABLE_FEATURE FFMultipart_MpType = 12
	FFMultipart_PORT_DESC     FFMultipart_MpType = 13
	FFMultipart_EXPERIMENTER  FFMultipart_MpType = 65535
)

var FFMultipart_MpType_name = map[int32]string{
	0:     "NOP",
	1:     "FLOW",
	2:     "AGGREGATE",
	3:     "TABLE",
	4:     "PORT",
	5:     "QUEUE",
	6:     "GROUP",
	7:     "GROUP_DESC",
	9:     "METER",
	10:    "METER_CONFIG",
	11:    "METER_FEATURE",
	12:    "TABLE_FEATURE",
	13:    "PORT_DESC",
	65535: "EXPERIMENTER",
}

var FFMultipart_MpType_value = map[string]int32{
	"NOP":           0,
	"FLOW":          1,
	"AGGREGATE":     2,
	"TABLE":         3,
	"PORT":          4,
	"QUEUE":         5,
	"GROUP":         6,
	"GROUP_DESC":    7,
	"METER":         9,
	"METER_CONFIG":  10,
	"METER_FEATURE": 11,
	"TABLE_FEATURE": 12,
	"PORT_DESC":     13,
	"EXPERIMENTER":  65535,
}

func (x FFMultipart_MpType) String() string {
	return proto.EnumName(FFMultipart_MpType_name, int32(x))
}

func (FFMultipart_MpType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 0}
}

type FFPortStatus_Reason int32

const (
	FFPortStatus_ADD    FFPortStatus_Reason = 0
	FFPortStatus_DELETE FFPortStatus_Reason = 1
	FFPortStatus_MODIFY FFPortStatus_Reason = 2
)

var FFPortStatus_Reason_name = map[int32]string{
	0: "ADD",
	1: "DELETE",
	2: "MODIFY",
}

var FFPortStatus_Reason_value = map[string]int32{
	"ADD":    0,
	"DELETE": 1,
	"MODIFY": 2,
}

func (x FFPortStatus_Reason) String() string {
	return proto.EnumName(FFPortStatus_Reason_name, int32(x))
}

func (FFPortStatus_Reason) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{27, 0}
}

type L2Addr_Reason int32

const (
	L2Addr_NOP    L2Addr_Reason = 0
	L2Addr_ADD    L2Addr_Reason = 1
	L2Addr_DELETE L2Addr_Reason = 2
)

var L2Addr_Reason_name = map[int32]string{
	0: "NOP",
	1: "ADD",
	2: "DELETE",
}

var L2Addr_Reason_value = map[string]int32{
	"NOP":    0,
	"ADD":    1,
	"DELETE": 2,
}

func (x L2Addr_Reason) String() string {
	return proto.EnumName(L2Addr_Reason_name, int32(x))
}

func (L2Addr_Reason) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{31, 0}
}

type Hello struct {
	ReId                 string   `protobuf:"bytes,1,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Hello) Reset()         { *m = Hello{} }
func (m *Hello) String() string { return proto.CompactTextString(m) }
func (*Hello) ProtoMessage()    {}
func (*Hello) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{0}
}

func (m *Hello) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Hello.Unmarshal(m, b)
}
func (m *Hello) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Hello.Marshal(b, m, deterministic)
}
func (m *Hello) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Hello.Merge(m, src)
}
func (m *Hello) XXX_Size() int {
	return xxx_messageInfo_Hello.Size(m)
}
func (m *Hello) XXX_DiscardUnknown() {
	xxx_messageInfo_Hello.DiscardUnknown(m)
}

var xxx_messageInfo_Hello proto.InternalMessageInfo

func (m *Hello) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

type DpStatus struct {
	Status               DpStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=fibcapi.DpStatus_Status" json:"status,omitempty"`
	ReId                 string          `protobuf:"bytes,2,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *DpStatus) Reset()         { *m = DpStatus{} }
func (m *DpStatus) String() string { return proto.CompactTextString(m) }
func (*DpStatus) ProtoMessage()    {}
func (*DpStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{1}
}

func (m *DpStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DpStatus.Unmarshal(m, b)
}
func (m *DpStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DpStatus.Marshal(b, m, deterministic)
}
func (m *DpStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DpStatus.Merge(m, src)
}
func (m *DpStatus) XXX_Size() int {
	return xxx_messageInfo_DpStatus.Size(m)
}
func (m *DpStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_DpStatus.DiscardUnknown(m)
}

var xxx_messageInfo_DpStatus proto.InternalMessageInfo

func (m *DpStatus) GetStatus() DpStatus_Status {
	if m != nil {
		return m.Status
	}
	return DpStatus_NOP
}

func (m *DpStatus) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

type TunnelType struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TunnelType) Reset()         { *m = TunnelType{} }
func (m *TunnelType) String() string { return proto.CompactTextString(m) }
func (*TunnelType) ProtoMessage()    {}
func (*TunnelType) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{2}
}

func (m *TunnelType) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TunnelType.Unmarshal(m, b)
}
func (m *TunnelType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TunnelType.Marshal(b, m, deterministic)
}
func (m *TunnelType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TunnelType.Merge(m, src)
}
func (m *TunnelType) XXX_Size() int {
	return xxx_messageInfo_TunnelType.Size(m)
}
func (m *TunnelType) XXX_DiscardUnknown() {
	xxx_messageInfo_TunnelType.DiscardUnknown(m)
}

var xxx_messageInfo_TunnelType proto.InternalMessageInfo

type BridgeVlanInfo struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BridgeVlanInfo) Reset()         { *m = BridgeVlanInfo{} }
func (m *BridgeVlanInfo) String() string { return proto.CompactTextString(m) }
func (*BridgeVlanInfo) ProtoMessage()    {}
func (*BridgeVlanInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{3}
}

func (m *BridgeVlanInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BridgeVlanInfo.Unmarshal(m, b)
}
func (m *BridgeVlanInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BridgeVlanInfo.Marshal(b, m, deterministic)
}
func (m *BridgeVlanInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BridgeVlanInfo.Merge(m, src)
}
func (m *BridgeVlanInfo) XXX_Size() int {
	return xxx_messageInfo_BridgeVlanInfo.Size(m)
}
func (m *BridgeVlanInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_BridgeVlanInfo.DiscardUnknown(m)
}

var xxx_messageInfo_BridgeVlanInfo proto.InternalMessageInfo

type PortStatus struct {
	Status               PortStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=fibcapi.PortStatus_Status" json:"status,omitempty"`
	ReId                 string            `protobuf:"bytes,2,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	PortId               uint32            `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	Ifname               string            `protobuf:"bytes,4,opt,name=ifname,proto3" json:"ifname,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *PortStatus) Reset()         { *m = PortStatus{} }
func (m *PortStatus) String() string { return proto.CompactTextString(m) }
func (*PortStatus) ProtoMessage()    {}
func (*PortStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{4}
}

func (m *PortStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortStatus.Unmarshal(m, b)
}
func (m *PortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortStatus.Marshal(b, m, deterministic)
}
func (m *PortStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortStatus.Merge(m, src)
}
func (m *PortStatus) XXX_Size() int {
	return xxx_messageInfo_PortStatus.Size(m)
}
func (m *PortStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_PortStatus.DiscardUnknown(m)
}

var xxx_messageInfo_PortStatus proto.InternalMessageInfo

func (m *PortStatus) GetStatus() PortStatus_Status {
	if m != nil {
		return m.Status
	}
	return PortStatus_NOP
}

func (m *PortStatus) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *PortStatus) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *PortStatus) GetIfname() string {
	if m != nil {
		return m.Ifname
	}
	return ""
}

type LinkType struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LinkType) Reset()         { *m = LinkType{} }
func (m *LinkType) String() string { return proto.CompactTextString(m) }
func (*LinkType) ProtoMessage()    {}
func (*LinkType) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{5}
}

func (m *LinkType) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LinkType.Unmarshal(m, b)
}
func (m *LinkType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LinkType.Marshal(b, m, deterministic)
}
func (m *LinkType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LinkType.Merge(m, src)
}
func (m *LinkType) XXX_Size() int {
	return xxx_messageInfo_LinkType.Size(m)
}
func (m *LinkType) XXX_DiscardUnknown() {
	xxx_messageInfo_LinkType.DiscardUnknown(m)
}

var xxx_messageInfo_LinkType proto.InternalMessageInfo

type PortConfig struct {
	Cmd                  PortConfig_Cmd    `protobuf:"varint,1,opt,name=cmd,proto3,enum=fibcapi.PortConfig_Cmd" json:"cmd,omitempty"`
	ReId                 string            `protobuf:"bytes,2,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	Ifname               string            `protobuf:"bytes,3,opt,name=ifname,proto3" json:"ifname,omitempty"`
	PortId               uint32            `protobuf:"varint,4,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	Link                 string            `protobuf:"bytes,5,opt,name=link,proto3" json:"link,omitempty"`
	Master               string            `protobuf:"bytes,6,opt,name=master,proto3" json:"master,omitempty"`
	DpPort               uint32            `protobuf:"varint,7,opt,name=dp_port,json=dpPort,proto3" json:"dp_port,omitempty"`
	Status               PortStatus_Status `protobuf:"varint,8,opt,name=status,proto3,enum=fibcapi.PortStatus_Status" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *PortConfig) Reset()         { *m = PortConfig{} }
func (m *PortConfig) String() string { return proto.CompactTextString(m) }
func (*PortConfig) ProtoMessage()    {}
func (*PortConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{6}
}

func (m *PortConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortConfig.Unmarshal(m, b)
}
func (m *PortConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortConfig.Marshal(b, m, deterministic)
}
func (m *PortConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortConfig.Merge(m, src)
}
func (m *PortConfig) XXX_Size() int {
	return xxx_messageInfo_PortConfig.Size(m)
}
func (m *PortConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PortConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PortConfig proto.InternalMessageInfo

func (m *PortConfig) GetCmd() PortConfig_Cmd {
	if m != nil {
		return m.Cmd
	}
	return PortConfig_NOP
}

func (m *PortConfig) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *PortConfig) GetIfname() string {
	if m != nil {
		return m.Ifname
	}
	return ""
}

func (m *PortConfig) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *PortConfig) GetLink() string {
	if m != nil {
		return m.Link
	}
	return ""
}

func (m *PortConfig) GetMaster() string {
	if m != nil {
		return m.Master
	}
	return ""
}

func (m *PortConfig) GetDpPort() uint32 {
	if m != nil {
		return m.DpPort
	}
	return 0
}

func (m *PortConfig) GetStatus() PortStatus_Status {
	if m != nil {
		return m.Status
	}
	return PortStatus_NOP
}

type FlowMod struct {
	Cmd   FlowMod_Cmd   `protobuf:"varint,1,opt,name=cmd,proto3,enum=fibcapi.FlowMod_Cmd" json:"cmd,omitempty"`
	Table FlowMod_Table `protobuf:"varint,2,opt,name=table,proto3,enum=fibcapi.FlowMod_Table" json:"table,omitempty"`
	ReId  string        `protobuf:"bytes,3,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	// Types that are valid to be assigned to Entry:
	//	*FlowMod_Vlan
	//	*FlowMod_TermMac
	//	*FlowMod_Mpls1
	//	*FlowMod_Unicast
	//	*FlowMod_Bridging
	//	*FlowMod_Acl
	Entry                isFlowMod_Entry `protobuf_oneof:"entry"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *FlowMod) Reset()         { *m = FlowMod{} }
func (m *FlowMod) String() string { return proto.CompactTextString(m) }
func (*FlowMod) ProtoMessage()    {}
func (*FlowMod) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{7}
}

func (m *FlowMod) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FlowMod.Unmarshal(m, b)
}
func (m *FlowMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FlowMod.Marshal(b, m, deterministic)
}
func (m *FlowMod) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FlowMod.Merge(m, src)
}
func (m *FlowMod) XXX_Size() int {
	return xxx_messageInfo_FlowMod.Size(m)
}
func (m *FlowMod) XXX_DiscardUnknown() {
	xxx_messageInfo_FlowMod.DiscardUnknown(m)
}

var xxx_messageInfo_FlowMod proto.InternalMessageInfo

func (m *FlowMod) GetCmd() FlowMod_Cmd {
	if m != nil {
		return m.Cmd
	}
	return FlowMod_NOP
}

func (m *FlowMod) GetTable() FlowMod_Table {
	if m != nil {
		return m.Table
	}
	return FlowMod_INGRESS_PORT
}

func (m *FlowMod) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

type isFlowMod_Entry interface {
	isFlowMod_Entry()
}

type FlowMod_Vlan struct {
	Vlan *VLANFlow `protobuf:"bytes,4,opt,name=vlan,proto3,oneof"`
}

type FlowMod_TermMac struct {
	TermMac *TerminationMacFlow `protobuf:"bytes,5,opt,name=term_mac,json=termMac,proto3,oneof"`
}

type FlowMod_Mpls1 struct {
	Mpls1 *MPLSFlow `protobuf:"bytes,6,opt,name=mpls1,proto3,oneof"`
}

type FlowMod_Unicast struct {
	Unicast *UnicastRoutingFlow `protobuf:"bytes,7,opt,name=unicast,proto3,oneof"`
}

type FlowMod_Bridging struct {
	Bridging *BridgingFlow `protobuf:"bytes,8,opt,name=bridging,proto3,oneof"`
}

type FlowMod_Acl struct {
	Acl *PolicyACLFlow `protobuf:"bytes,9,opt,name=acl,proto3,oneof"`
}

func (*FlowMod_Vlan) isFlowMod_Entry() {}

func (*FlowMod_TermMac) isFlowMod_Entry() {}

func (*FlowMod_Mpls1) isFlowMod_Entry() {}

func (*FlowMod_Unicast) isFlowMod_Entry() {}

func (*FlowMod_Bridging) isFlowMod_Entry() {}

func (*FlowMod_Acl) isFlowMod_Entry() {}

func (m *FlowMod) GetEntry() isFlowMod_Entry {
	if m != nil {
		return m.Entry
	}
	return nil
}

func (m *FlowMod) GetVlan() *VLANFlow {
	if x, ok := m.GetEntry().(*FlowMod_Vlan); ok {
		return x.Vlan
	}
	return nil
}

func (m *FlowMod) GetTermMac() *TerminationMacFlow {
	if x, ok := m.GetEntry().(*FlowMod_TermMac); ok {
		return x.TermMac
	}
	return nil
}

func (m *FlowMod) GetMpls1() *MPLSFlow {
	if x, ok := m.GetEntry().(*FlowMod_Mpls1); ok {
		return x.Mpls1
	}
	return nil
}

func (m *FlowMod) GetUnicast() *UnicastRoutingFlow {
	if x, ok := m.GetEntry().(*FlowMod_Unicast); ok {
		return x.Unicast
	}
	return nil
}

func (m *FlowMod) GetBridging() *BridgingFlow {
	if x, ok := m.GetEntry().(*FlowMod_Bridging); ok {
		return x.Bridging
	}
	return nil
}

func (m *FlowMod) GetAcl() *PolicyACLFlow {
	if x, ok := m.GetEntry().(*FlowMod_Acl); ok {
		return x.Acl
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FlowMod) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FlowMod_Vlan)(nil),
		(*FlowMod_TermMac)(nil),
		(*FlowMod_Mpls1)(nil),
		(*FlowMod_Unicast)(nil),
		(*FlowMod_Bridging)(nil),
		(*FlowMod_Acl)(nil),
	}
}

type GroupMod struct {
	Cmd   GroupMod_Cmd   `protobuf:"varint,1,opt,name=cmd,proto3,enum=fibcapi.GroupMod_Cmd" json:"cmd,omitempty"`
	GType GroupMod_GType `protobuf:"varint,2,opt,name=g_type,json=gType,proto3,enum=fibcapi.GroupMod_GType" json:"g_type,omitempty"`
	ReId  string         `protobuf:"bytes,3,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	// Types that are valid to be assigned to Entry:
	//	*GroupMod_L2Iface
	//	*GroupMod_L3Unicast
	//	*GroupMod_MplsIface
	//	*GroupMod_MplsLabel
	Entry                isGroupMod_Entry `protobuf_oneof:"entry"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *GroupMod) Reset()         { *m = GroupMod{} }
func (m *GroupMod) String() string { return proto.CompactTextString(m) }
func (*GroupMod) ProtoMessage()    {}
func (*GroupMod) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{8}
}

func (m *GroupMod) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupMod.Unmarshal(m, b)
}
func (m *GroupMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupMod.Marshal(b, m, deterministic)
}
func (m *GroupMod) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupMod.Merge(m, src)
}
func (m *GroupMod) XXX_Size() int {
	return xxx_messageInfo_GroupMod.Size(m)
}
func (m *GroupMod) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupMod.DiscardUnknown(m)
}

var xxx_messageInfo_GroupMod proto.InternalMessageInfo

func (m *GroupMod) GetCmd() GroupMod_Cmd {
	if m != nil {
		return m.Cmd
	}
	return GroupMod_NOP
}

func (m *GroupMod) GetGType() GroupMod_GType {
	if m != nil {
		return m.GType
	}
	return GroupMod_UNSPEC
}

func (m *GroupMod) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

type isGroupMod_Entry interface {
	isGroupMod_Entry()
}

type GroupMod_L2Iface struct {
	L2Iface *L2InterfaceGroup `protobuf:"bytes,4,opt,name=l2_iface,json=l2Iface,proto3,oneof"`
}

type GroupMod_L3Unicast struct {
	L3Unicast *L3UnicastGroup `protobuf:"bytes,5,opt,name=l3_unicast,json=l3Unicast,proto3,oneof"`
}

type GroupMod_MplsIface struct {
	MplsIface *MPLSInterfaceGroup `protobuf:"bytes,6,opt,name=mpls_iface,json=mplsIface,proto3,oneof"`
}

type GroupMod_MplsLabel struct {
	MplsLabel *MPLSLabelGroup `protobuf:"bytes,7,opt,name=mpls_label,json=mplsLabel,proto3,oneof"`
}

func (*GroupMod_L2Iface) isGroupMod_Entry() {}

func (*GroupMod_L3Unicast) isGroupMod_Entry() {}

func (*GroupMod_MplsIface) isGroupMod_Entry() {}

func (*GroupMod_MplsLabel) isGroupMod_Entry() {}

func (m *GroupMod) GetEntry() isGroupMod_Entry {
	if m != nil {
		return m.Entry
	}
	return nil
}

func (m *GroupMod) GetL2Iface() *L2InterfaceGroup {
	if x, ok := m.GetEntry().(*GroupMod_L2Iface); ok {
		return x.L2Iface
	}
	return nil
}

func (m *GroupMod) GetL3Unicast() *L3UnicastGroup {
	if x, ok := m.GetEntry().(*GroupMod_L3Unicast); ok {
		return x.L3Unicast
	}
	return nil
}

func (m *GroupMod) GetMplsIface() *MPLSInterfaceGroup {
	if x, ok := m.GetEntry().(*GroupMod_MplsIface); ok {
		return x.MplsIface
	}
	return nil
}

func (m *GroupMod) GetMplsLabel() *MPLSLabelGroup {
	if x, ok := m.GetEntry().(*GroupMod_MplsLabel); ok {
		return x.MplsLabel
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*GroupMod) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*GroupMod_L2Iface)(nil),
		(*GroupMod_L3Unicast)(nil),
		(*GroupMod_MplsIface)(nil),
		(*GroupMod_MplsLabel)(nil),
	}
}

type VLANFlow struct {
	Match                *VLANFlow_Match    `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Actions              []*VLANFlow_Action `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
	GotoTable            uint32             `protobuf:"varint,3,opt,name=goto_table,json=gotoTable,proto3" json:"goto_table,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *VLANFlow) Reset()         { *m = VLANFlow{} }
func (m *VLANFlow) String() string { return proto.CompactTextString(m) }
func (*VLANFlow) ProtoMessage()    {}
func (*VLANFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{9}
}

func (m *VLANFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VLANFlow.Unmarshal(m, b)
}
func (m *VLANFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VLANFlow.Marshal(b, m, deterministic)
}
func (m *VLANFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VLANFlow.Merge(m, src)
}
func (m *VLANFlow) XXX_Size() int {
	return xxx_messageInfo_VLANFlow.Size(m)
}
func (m *VLANFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_VLANFlow.DiscardUnknown(m)
}

var xxx_messageInfo_VLANFlow proto.InternalMessageInfo

func (m *VLANFlow) GetMatch() *VLANFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *VLANFlow) GetActions() []*VLANFlow_Action {
	if m != nil {
		return m.Actions
	}
	return nil
}

func (m *VLANFlow) GetGotoTable() uint32 {
	if m != nil {
		return m.GotoTable
	}
	return 0
}

type VLANFlow_Match struct {
	InPort               uint32   `protobuf:"varint,1,opt,name=in_port,json=inPort,proto3" json:"in_port,omitempty"`
	Vid                  uint32   `protobuf:"varint,2,opt,name=vid,proto3" json:"vid,omitempty"`
	VidMask              uint32   `protobuf:"varint,3,opt,name=vid_mask,json=vidMask,proto3" json:"vid_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VLANFlow_Match) Reset()         { *m = VLANFlow_Match{} }
func (m *VLANFlow_Match) String() string { return proto.CompactTextString(m) }
func (*VLANFlow_Match) ProtoMessage()    {}
func (*VLANFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{9, 0}
}

func (m *VLANFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VLANFlow_Match.Unmarshal(m, b)
}
func (m *VLANFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VLANFlow_Match.Marshal(b, m, deterministic)
}
func (m *VLANFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VLANFlow_Match.Merge(m, src)
}
func (m *VLANFlow_Match) XXX_Size() int {
	return xxx_messageInfo_VLANFlow_Match.Size(m)
}
func (m *VLANFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_VLANFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_VLANFlow_Match proto.InternalMessageInfo

func (m *VLANFlow_Match) GetInPort() uint32 {
	if m != nil {
		return m.InPort
	}
	return 0
}

func (m *VLANFlow_Match) GetVid() uint32 {
	if m != nil {
		return m.Vid
	}
	return 0
}

func (m *VLANFlow_Match) GetVidMask() uint32 {
	if m != nil {
		return m.VidMask
	}
	return 0
}

type VLANFlow_Action struct {
	Name                 VLANFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.VLANFlow_Action_Name" json:"name,omitempty"`
	Value                uint32               `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *VLANFlow_Action) Reset()         { *m = VLANFlow_Action{} }
func (m *VLANFlow_Action) String() string { return proto.CompactTextString(m) }
func (*VLANFlow_Action) ProtoMessage()    {}
func (*VLANFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{9, 1}
}

func (m *VLANFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VLANFlow_Action.Unmarshal(m, b)
}
func (m *VLANFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VLANFlow_Action.Marshal(b, m, deterministic)
}
func (m *VLANFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VLANFlow_Action.Merge(m, src)
}
func (m *VLANFlow_Action) XXX_Size() int {
	return xxx_messageInfo_VLANFlow_Action.Size(m)
}
func (m *VLANFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_VLANFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_VLANFlow_Action proto.InternalMessageInfo

func (m *VLANFlow_Action) GetName() VLANFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return VLANFlow_Action_UNSPEC
}

func (m *VLANFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type TerminationMacFlow struct {
	Match                *TerminationMacFlow_Match    `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Actions              []*TerminationMacFlow_Action `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
	GotoTable            uint32                       `protobuf:"varint,3,opt,name=goto_table,json=gotoTable,proto3" json:"goto_table,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *TerminationMacFlow) Reset()         { *m = TerminationMacFlow{} }
func (m *TerminationMacFlow) String() string { return proto.CompactTextString(m) }
func (*TerminationMacFlow) ProtoMessage()    {}
func (*TerminationMacFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{10}
}

func (m *TerminationMacFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TerminationMacFlow.Unmarshal(m, b)
}
func (m *TerminationMacFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TerminationMacFlow.Marshal(b, m, deterministic)
}
func (m *TerminationMacFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TerminationMacFlow.Merge(m, src)
}
func (m *TerminationMacFlow) XXX_Size() int {
	return xxx_messageInfo_TerminationMacFlow.Size(m)
}
func (m *TerminationMacFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_TerminationMacFlow.DiscardUnknown(m)
}

var xxx_messageInfo_TerminationMacFlow proto.InternalMessageInfo

func (m *TerminationMacFlow) GetMatch() *TerminationMacFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *TerminationMacFlow) GetActions() []*TerminationMacFlow_Action {
	if m != nil {
		return m.Actions
	}
	return nil
}

func (m *TerminationMacFlow) GetGotoTable() uint32 {
	if m != nil {
		return m.GotoTable
	}
	return 0
}

type TerminationMacFlow_Match struct {
	InPort               uint32   `protobuf:"varint,1,opt,name=in_port,json=inPort,proto3" json:"in_port,omitempty"`
	EthType              uint32   `protobuf:"varint,2,opt,name=eth_type,json=ethType,proto3" json:"eth_type,omitempty"`
	EthDst               string   `protobuf:"bytes,3,opt,name=eth_dst,json=ethDst,proto3" json:"eth_dst,omitempty"`
	VlanVid              uint32   `protobuf:"varint,4,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TerminationMacFlow_Match) Reset()         { *m = TerminationMacFlow_Match{} }
func (m *TerminationMacFlow_Match) String() string { return proto.CompactTextString(m) }
func (*TerminationMacFlow_Match) ProtoMessage()    {}
func (*TerminationMacFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{10, 0}
}

func (m *TerminationMacFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TerminationMacFlow_Match.Unmarshal(m, b)
}
func (m *TerminationMacFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TerminationMacFlow_Match.Marshal(b, m, deterministic)
}
func (m *TerminationMacFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TerminationMacFlow_Match.Merge(m, src)
}
func (m *TerminationMacFlow_Match) XXX_Size() int {
	return xxx_messageInfo_TerminationMacFlow_Match.Size(m)
}
func (m *TerminationMacFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_TerminationMacFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_TerminationMacFlow_Match proto.InternalMessageInfo

func (m *TerminationMacFlow_Match) GetInPort() uint32 {
	if m != nil {
		return m.InPort
	}
	return 0
}

func (m *TerminationMacFlow_Match) GetEthType() uint32 {
	if m != nil {
		return m.EthType
	}
	return 0
}

func (m *TerminationMacFlow_Match) GetEthDst() string {
	if m != nil {
		return m.EthDst
	}
	return ""
}

func (m *TerminationMacFlow_Match) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

type TerminationMacFlow_Action struct {
	Name                 TerminationMacFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.TerminationMacFlow_Action_Name" json:"name,omitempty"`
	Value                uint32                         `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *TerminationMacFlow_Action) Reset()         { *m = TerminationMacFlow_Action{} }
func (m *TerminationMacFlow_Action) String() string { return proto.CompactTextString(m) }
func (*TerminationMacFlow_Action) ProtoMessage()    {}
func (*TerminationMacFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{10, 1}
}

func (m *TerminationMacFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TerminationMacFlow_Action.Unmarshal(m, b)
}
func (m *TerminationMacFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TerminationMacFlow_Action.Marshal(b, m, deterministic)
}
func (m *TerminationMacFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TerminationMacFlow_Action.Merge(m, src)
}
func (m *TerminationMacFlow_Action) XXX_Size() int {
	return xxx_messageInfo_TerminationMacFlow_Action.Size(m)
}
func (m *TerminationMacFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_TerminationMacFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_TerminationMacFlow_Action proto.InternalMessageInfo

func (m *TerminationMacFlow_Action) GetName() TerminationMacFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return TerminationMacFlow_Action_UNSPEC
}

func (m *TerminationMacFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type MPLSFlow struct {
	Match                *MPLSFlow_Match    `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Actions              []*MPLSFlow_Action `protobuf:"bytes,2,rep,name=actions,proto3" json:"actions,omitempty"`
	GType                GroupMod_GType     `protobuf:"varint,3,opt,name=g_type,json=gType,proto3,enum=fibcapi.GroupMod_GType" json:"g_type,omitempty"`
	GId                  uint32             `protobuf:"varint,4,opt,name=g_id,json=gId,proto3" json:"g_id,omitempty"`
	GotoTable            uint32             `protobuf:"varint,5,opt,name=goto_table,json=gotoTable,proto3" json:"goto_table,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *MPLSFlow) Reset()         { *m = MPLSFlow{} }
func (m *MPLSFlow) String() string { return proto.CompactTextString(m) }
func (*MPLSFlow) ProtoMessage()    {}
func (*MPLSFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{11}
}

func (m *MPLSFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MPLSFlow.Unmarshal(m, b)
}
func (m *MPLSFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MPLSFlow.Marshal(b, m, deterministic)
}
func (m *MPLSFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MPLSFlow.Merge(m, src)
}
func (m *MPLSFlow) XXX_Size() int {
	return xxx_messageInfo_MPLSFlow.Size(m)
}
func (m *MPLSFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_MPLSFlow.DiscardUnknown(m)
}

var xxx_messageInfo_MPLSFlow proto.InternalMessageInfo

func (m *MPLSFlow) GetMatch() *MPLSFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *MPLSFlow) GetActions() []*MPLSFlow_Action {
	if m != nil {
		return m.Actions
	}
	return nil
}

func (m *MPLSFlow) GetGType() GroupMod_GType {
	if m != nil {
		return m.GType
	}
	return GroupMod_UNSPEC
}

func (m *MPLSFlow) GetGId() uint32 {
	if m != nil {
		return m.GId
	}
	return 0
}

func (m *MPLSFlow) GetGotoTable() uint32 {
	if m != nil {
		return m.GotoTable
	}
	return 0
}

type MPLSFlow_Match struct {
	Bos                  bool     `protobuf:"varint,1,opt,name=bos,proto3" json:"bos,omitempty"`
	Label                uint32   `protobuf:"varint,2,opt,name=label,proto3" json:"label,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MPLSFlow_Match) Reset()         { *m = MPLSFlow_Match{} }
func (m *MPLSFlow_Match) String() string { return proto.CompactTextString(m) }
func (*MPLSFlow_Match) ProtoMessage()    {}
func (*MPLSFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{11, 0}
}

func (m *MPLSFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MPLSFlow_Match.Unmarshal(m, b)
}
func (m *MPLSFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MPLSFlow_Match.Marshal(b, m, deterministic)
}
func (m *MPLSFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MPLSFlow_Match.Merge(m, src)
}
func (m *MPLSFlow_Match) XXX_Size() int {
	return xxx_messageInfo_MPLSFlow_Match.Size(m)
}
func (m *MPLSFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_MPLSFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_MPLSFlow_Match proto.InternalMessageInfo

func (m *MPLSFlow_Match) GetBos() bool {
	if m != nil {
		return m.Bos
	}
	return false
}

func (m *MPLSFlow_Match) GetLabel() uint32 {
	if m != nil {
		return m.Label
	}
	return 0
}

type MPLSFlow_Action struct {
	Name                 MPLSFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.MPLSFlow_Action_Name" json:"name,omitempty"`
	Value                uint32               `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *MPLSFlow_Action) Reset()         { *m = MPLSFlow_Action{} }
func (m *MPLSFlow_Action) String() string { return proto.CompactTextString(m) }
func (*MPLSFlow_Action) ProtoMessage()    {}
func (*MPLSFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{11, 1}
}

func (m *MPLSFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MPLSFlow_Action.Unmarshal(m, b)
}
func (m *MPLSFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MPLSFlow_Action.Marshal(b, m, deterministic)
}
func (m *MPLSFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MPLSFlow_Action.Merge(m, src)
}
func (m *MPLSFlow_Action) XXX_Size() int {
	return xxx_messageInfo_MPLSFlow_Action.Size(m)
}
func (m *MPLSFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_MPLSFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_MPLSFlow_Action proto.InternalMessageInfo

func (m *MPLSFlow_Action) GetName() MPLSFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return MPLSFlow_Action_UNSPEC
}

func (m *MPLSFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type UnicastRoutingFlow struct {
	Match                *UnicastRoutingFlow_Match  `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Action               *UnicastRoutingFlow_Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
	GType                GroupMod_GType             `protobuf:"varint,3,opt,name=g_type,json=gType,proto3,enum=fibcapi.GroupMod_GType" json:"g_type,omitempty"`
	GId                  uint32                     `protobuf:"varint,4,opt,name=g_id,json=gId,proto3" json:"g_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *UnicastRoutingFlow) Reset()         { *m = UnicastRoutingFlow{} }
func (m *UnicastRoutingFlow) String() string { return proto.CompactTextString(m) }
func (*UnicastRoutingFlow) ProtoMessage()    {}
func (*UnicastRoutingFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{12}
}

func (m *UnicastRoutingFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnicastRoutingFlow.Unmarshal(m, b)
}
func (m *UnicastRoutingFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnicastRoutingFlow.Marshal(b, m, deterministic)
}
func (m *UnicastRoutingFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnicastRoutingFlow.Merge(m, src)
}
func (m *UnicastRoutingFlow) XXX_Size() int {
	return xxx_messageInfo_UnicastRoutingFlow.Size(m)
}
func (m *UnicastRoutingFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_UnicastRoutingFlow.DiscardUnknown(m)
}

var xxx_messageInfo_UnicastRoutingFlow proto.InternalMessageInfo

func (m *UnicastRoutingFlow) GetMatch() *UnicastRoutingFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *UnicastRoutingFlow) GetAction() *UnicastRoutingFlow_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

func (m *UnicastRoutingFlow) GetGType() GroupMod_GType {
	if m != nil {
		return m.GType
	}
	return GroupMod_UNSPEC
}

func (m *UnicastRoutingFlow) GetGId() uint32 {
	if m != nil {
		return m.GId
	}
	return 0
}

type UnicastRoutingFlow_Match struct {
	IpDst                string                    `protobuf:"bytes,1,opt,name=ip_dst,json=ipDst,proto3" json:"ip_dst,omitempty"`
	Vrf                  uint32                    `protobuf:"varint,2,opt,name=vrf,proto3" json:"vrf,omitempty"`
	Origin               UnicastRoutingFlow_Origin `protobuf:"varint,3,opt,name=origin,proto3,enum=fibcapi.UnicastRoutingFlow_Origin" json:"origin,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *UnicastRoutingFlow_Match) Reset()         { *m = UnicastRoutingFlow_Match{} }
func (m *UnicastRoutingFlow_Match) String() string { return proto.CompactTextString(m) }
func (*UnicastRoutingFlow_Match) ProtoMessage()    {}
func (*UnicastRoutingFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{12, 0}
}

func (m *UnicastRoutingFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnicastRoutingFlow_Match.Unmarshal(m, b)
}
func (m *UnicastRoutingFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnicastRoutingFlow_Match.Marshal(b, m, deterministic)
}
func (m *UnicastRoutingFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnicastRoutingFlow_Match.Merge(m, src)
}
func (m *UnicastRoutingFlow_Match) XXX_Size() int {
	return xxx_messageInfo_UnicastRoutingFlow_Match.Size(m)
}
func (m *UnicastRoutingFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_UnicastRoutingFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_UnicastRoutingFlow_Match proto.InternalMessageInfo

func (m *UnicastRoutingFlow_Match) GetIpDst() string {
	if m != nil {
		return m.IpDst
	}
	return ""
}

func (m *UnicastRoutingFlow_Match) GetVrf() uint32 {
	if m != nil {
		return m.Vrf
	}
	return 0
}

func (m *UnicastRoutingFlow_Match) GetOrigin() UnicastRoutingFlow_Origin {
	if m != nil {
		return m.Origin
	}
	return UnicastRoutingFlow_UNSPEC
}

type UnicastRoutingFlow_Action struct {
	Name                 UnicastRoutingFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.UnicastRoutingFlow_Action_Name" json:"name,omitempty"`
	Value                uint32                         `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *UnicastRoutingFlow_Action) Reset()         { *m = UnicastRoutingFlow_Action{} }
func (m *UnicastRoutingFlow_Action) String() string { return proto.CompactTextString(m) }
func (*UnicastRoutingFlow_Action) ProtoMessage()    {}
func (*UnicastRoutingFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{12, 1}
}

func (m *UnicastRoutingFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnicastRoutingFlow_Action.Unmarshal(m, b)
}
func (m *UnicastRoutingFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnicastRoutingFlow_Action.Marshal(b, m, deterministic)
}
func (m *UnicastRoutingFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnicastRoutingFlow_Action.Merge(m, src)
}
func (m *UnicastRoutingFlow_Action) XXX_Size() int {
	return xxx_messageInfo_UnicastRoutingFlow_Action.Size(m)
}
func (m *UnicastRoutingFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_UnicastRoutingFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_UnicastRoutingFlow_Action proto.InternalMessageInfo

func (m *UnicastRoutingFlow_Action) GetName() UnicastRoutingFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return UnicastRoutingFlow_Action_UNSPEC
}

func (m *UnicastRoutingFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type BridgingFlow struct {
	Match                *BridgingFlow_Match  `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Action               *BridgingFlow_Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *BridgingFlow) Reset()         { *m = BridgingFlow{} }
func (m *BridgingFlow) String() string { return proto.CompactTextString(m) }
func (*BridgingFlow) ProtoMessage()    {}
func (*BridgingFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{13}
}

func (m *BridgingFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BridgingFlow.Unmarshal(m, b)
}
func (m *BridgingFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BridgingFlow.Marshal(b, m, deterministic)
}
func (m *BridgingFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BridgingFlow.Merge(m, src)
}
func (m *BridgingFlow) XXX_Size() int {
	return xxx_messageInfo_BridgingFlow.Size(m)
}
func (m *BridgingFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_BridgingFlow.DiscardUnknown(m)
}

var xxx_messageInfo_BridgingFlow proto.InternalMessageInfo

func (m *BridgingFlow) GetMatch() *BridgingFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *BridgingFlow) GetAction() *BridgingFlow_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

type BridgingFlow_Match struct {
	EthDst               string   `protobuf:"bytes,1,opt,name=eth_dst,json=ethDst,proto3" json:"eth_dst,omitempty"`
	VlanVid              uint32   `protobuf:"varint,2,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	TunnelId             uint32   `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BridgingFlow_Match) Reset()         { *m = BridgingFlow_Match{} }
func (m *BridgingFlow_Match) String() string { return proto.CompactTextString(m) }
func (*BridgingFlow_Match) ProtoMessage()    {}
func (*BridgingFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{13, 0}
}

func (m *BridgingFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BridgingFlow_Match.Unmarshal(m, b)
}
func (m *BridgingFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BridgingFlow_Match.Marshal(b, m, deterministic)
}
func (m *BridgingFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BridgingFlow_Match.Merge(m, src)
}
func (m *BridgingFlow_Match) XXX_Size() int {
	return xxx_messageInfo_BridgingFlow_Match.Size(m)
}
func (m *BridgingFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_BridgingFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_BridgingFlow_Match proto.InternalMessageInfo

func (m *BridgingFlow_Match) GetEthDst() string {
	if m != nil {
		return m.EthDst
	}
	return ""
}

func (m *BridgingFlow_Match) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

func (m *BridgingFlow_Match) GetTunnelId() uint32 {
	if m != nil {
		return m.TunnelId
	}
	return 0
}

type BridgingFlow_Action struct {
	Name                 BridgingFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.BridgingFlow_Action_Name" json:"name,omitempty"`
	Value                uint32                   `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *BridgingFlow_Action) Reset()         { *m = BridgingFlow_Action{} }
func (m *BridgingFlow_Action) String() string { return proto.CompactTextString(m) }
func (*BridgingFlow_Action) ProtoMessage()    {}
func (*BridgingFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{13, 1}
}

func (m *BridgingFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BridgingFlow_Action.Unmarshal(m, b)
}
func (m *BridgingFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BridgingFlow_Action.Marshal(b, m, deterministic)
}
func (m *BridgingFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BridgingFlow_Action.Merge(m, src)
}
func (m *BridgingFlow_Action) XXX_Size() int {
	return xxx_messageInfo_BridgingFlow_Action.Size(m)
}
func (m *BridgingFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_BridgingFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_BridgingFlow_Action proto.InternalMessageInfo

func (m *BridgingFlow_Action) GetName() BridgingFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return BridgingFlow_Action_UNSPEC
}

func (m *BridgingFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

type PolicyACLFlow struct {
	Match                *PolicyACLFlow_Match  `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Action               *PolicyACLFlow_Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *PolicyACLFlow) Reset()         { *m = PolicyACLFlow{} }
func (m *PolicyACLFlow) String() string { return proto.CompactTextString(m) }
func (*PolicyACLFlow) ProtoMessage()    {}
func (*PolicyACLFlow) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{14}
}

func (m *PolicyACLFlow) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyACLFlow.Unmarshal(m, b)
}
func (m *PolicyACLFlow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyACLFlow.Marshal(b, m, deterministic)
}
func (m *PolicyACLFlow) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyACLFlow.Merge(m, src)
}
func (m *PolicyACLFlow) XXX_Size() int {
	return xxx_messageInfo_PolicyACLFlow.Size(m)
}
func (m *PolicyACLFlow) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyACLFlow.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyACLFlow proto.InternalMessageInfo

func (m *PolicyACLFlow) GetMatch() *PolicyACLFlow_Match {
	if m != nil {
		return m.Match
	}
	return nil
}

func (m *PolicyACLFlow) GetAction() *PolicyACLFlow_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

type PolicyACLFlow_Match struct {
	IpDst                string   `protobuf:"bytes,1,opt,name=ip_dst,json=ipDst,proto3" json:"ip_dst,omitempty"`
	Vrf                  uint32   `protobuf:"varint,2,opt,name=vrf,proto3" json:"vrf,omitempty"`
	EthType              uint32   `protobuf:"varint,3,opt,name=eth_type,json=ethType,proto3" json:"eth_type,omitempty"`
	IpProto              uint32   `protobuf:"varint,4,opt,name=ip_proto,json=ipProto,proto3" json:"ip_proto,omitempty"`
	TpSrc                uint32   `protobuf:"varint,5,opt,name=tp_src,json=tpSrc,proto3" json:"tp_src,omitempty"`
	TpDst                uint32   `protobuf:"varint,6,opt,name=tp_dst,json=tpDst,proto3" json:"tp_dst,omitempty"`
	EthDst               string   `protobuf:"bytes,7,opt,name=eth_dst,json=ethDst,proto3" json:"eth_dst,omitempty"`
	InPort               uint32   `protobuf:"varint,8,opt,name=in_port,json=inPort,proto3" json:"in_port,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PolicyACLFlow_Match) Reset()         { *m = PolicyACLFlow_Match{} }
func (m *PolicyACLFlow_Match) String() string { return proto.CompactTextString(m) }
func (*PolicyACLFlow_Match) ProtoMessage()    {}
func (*PolicyACLFlow_Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{14, 0}
}

func (m *PolicyACLFlow_Match) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyACLFlow_Match.Unmarshal(m, b)
}
func (m *PolicyACLFlow_Match) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyACLFlow_Match.Marshal(b, m, deterministic)
}
func (m *PolicyACLFlow_Match) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyACLFlow_Match.Merge(m, src)
}
func (m *PolicyACLFlow_Match) XXX_Size() int {
	return xxx_messageInfo_PolicyACLFlow_Match.Size(m)
}
func (m *PolicyACLFlow_Match) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyACLFlow_Match.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyACLFlow_Match proto.InternalMessageInfo

func (m *PolicyACLFlow_Match) GetIpDst() string {
	if m != nil {
		return m.IpDst
	}
	return ""
}

func (m *PolicyACLFlow_Match) GetVrf() uint32 {
	if m != nil {
		return m.Vrf
	}
	return 0
}

func (m *PolicyACLFlow_Match) GetEthType() uint32 {
	if m != nil {
		return m.EthType
	}
	return 0
}

func (m *PolicyACLFlow_Match) GetIpProto() uint32 {
	if m != nil {
		return m.IpProto
	}
	return 0
}

func (m *PolicyACLFlow_Match) GetTpSrc() uint32 {
	if m != nil {
		return m.TpSrc
	}
	return 0
}

func (m *PolicyACLFlow_Match) GetTpDst() uint32 {
	if m != nil {
		return m.TpDst
	}
	return 0
}

func (m *PolicyACLFlow_Match) GetEthDst() string {
	if m != nil {
		return m.EthDst
	}
	return ""
}

func (m *PolicyACLFlow_Match) GetInPort() uint32 {
	if m != nil {
		return m.InPort
	}
	return 0
}

type PolicyACLFlow_Action struct {
	Name                 PolicyACLFlow_Action_Name `protobuf:"varint,1,opt,name=name,proto3,enum=fibcapi.PolicyACLFlow_Action_Name" json:"name,omitempty"`
	Value                uint32                    `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *PolicyACLFlow_Action) Reset()         { *m = PolicyACLFlow_Action{} }
func (m *PolicyACLFlow_Action) String() string { return proto.CompactTextString(m) }
func (*PolicyACLFlow_Action) ProtoMessage()    {}
func (*PolicyACLFlow_Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{14, 1}
}

func (m *PolicyACLFlow_Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyACLFlow_Action.Unmarshal(m, b)
}
func (m *PolicyACLFlow_Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyACLFlow_Action.Marshal(b, m, deterministic)
}
func (m *PolicyACLFlow_Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyACLFlow_Action.Merge(m, src)
}
func (m *PolicyACLFlow_Action) XXX_Size() int {
	return xxx_messageInfo_PolicyACLFlow_Action.Size(m)
}
func (m *PolicyACLFlow_Action) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyACLFlow_Action.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyACLFlow_Action proto.InternalMessageInfo

func (m *PolicyACLFlow_Action) GetName() PolicyACLFlow_Action_Name {
	if m != nil {
		return m.Name
	}
	return PolicyACLFlow_Action_UNSPEC
}

func (m *PolicyACLFlow_Action) GetValue() uint32 {
	if m != nil {
		return m.Value
	}
	return 0
}

// 0x0vvvPPPP (vvv:VID, PPPP:port_id)
type L2InterfaceGroup struct {
	PortId               uint32   `protobuf:"varint,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	VlanVid              uint32   `protobuf:"varint,2,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	VlanTranslation      bool     `protobuf:"varint,3,opt,name=vlan_translation,json=vlanTranslation,proto3" json:"vlan_translation,omitempty"`
	HwAddr               string   `protobuf:"bytes,4,opt,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
	Mtu                  uint32   `protobuf:"varint,5,opt,name=mtu,proto3" json:"mtu,omitempty"`
	Vrf                  uint32   `protobuf:"varint,6,opt,name=vrf,proto3" json:"vrf,omitempty"`
	Master               uint32   `protobuf:"varint,7,opt,name=master,proto3" json:"master,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *L2InterfaceGroup) Reset()         { *m = L2InterfaceGroup{} }
func (m *L2InterfaceGroup) String() string { return proto.CompactTextString(m) }
func (*L2InterfaceGroup) ProtoMessage()    {}
func (*L2InterfaceGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{15}
}

func (m *L2InterfaceGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L2InterfaceGroup.Unmarshal(m, b)
}
func (m *L2InterfaceGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L2InterfaceGroup.Marshal(b, m, deterministic)
}
func (m *L2InterfaceGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L2InterfaceGroup.Merge(m, src)
}
func (m *L2InterfaceGroup) XXX_Size() int {
	return xxx_messageInfo_L2InterfaceGroup.Size(m)
}
func (m *L2InterfaceGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_L2InterfaceGroup.DiscardUnknown(m)
}

var xxx_messageInfo_L2InterfaceGroup proto.InternalMessageInfo

func (m *L2InterfaceGroup) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *L2InterfaceGroup) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

func (m *L2InterfaceGroup) GetVlanTranslation() bool {
	if m != nil {
		return m.VlanTranslation
	}
	return false
}

func (m *L2InterfaceGroup) GetHwAddr() string {
	if m != nil {
		return m.HwAddr
	}
	return ""
}

func (m *L2InterfaceGroup) GetMtu() uint32 {
	if m != nil {
		return m.Mtu
	}
	return 0
}

func (m *L2InterfaceGroup) GetVrf() uint32 {
	if m != nil {
		return m.Vrf
	}
	return 0
}

func (m *L2InterfaceGroup) GetMaster() uint32 {
	if m != nil {
		return m.Master
	}
	return 0
}

// 0x20VVNNNN (VV:VRF, NNNN:NeId)
type L3UnicastGroup struct {
	NeId                 uint32          `protobuf:"varint,1,opt,name=ne_id,json=neId,proto3" json:"ne_id,omitempty"`
	PortId               uint32          `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	VlanVid              uint32          `protobuf:"varint,3,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	EthDst               string          `protobuf:"bytes,4,opt,name=eth_dst,json=ethDst,proto3" json:"eth_dst,omitempty"`
	EthSrc               string          `protobuf:"bytes,5,opt,name=eth_src,json=ethSrc,proto3" json:"eth_src,omitempty"`
	PhyPortId            uint32          `protobuf:"varint,6,opt,name=phy_port_id,json=phyPortId,proto3" json:"phy_port_id,omitempty"`
	TunType              TunnelType_Type `protobuf:"varint,7,opt,name=tun_type,json=tunType,proto3,enum=fibcapi.TunnelType_Type" json:"tun_type,omitempty"`
	TunRemote            string          `protobuf:"bytes,8,opt,name=tun_remote,json=tunRemote,proto3" json:"tun_remote,omitempty"`
	TunLocal             string          `protobuf:"bytes,9,opt,name=tun_local,json=tunLocal,proto3" json:"tun_local,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *L3UnicastGroup) Reset()         { *m = L3UnicastGroup{} }
func (m *L3UnicastGroup) String() string { return proto.CompactTextString(m) }
func (*L3UnicastGroup) ProtoMessage()    {}
func (*L3UnicastGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{16}
}

func (m *L3UnicastGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L3UnicastGroup.Unmarshal(m, b)
}
func (m *L3UnicastGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L3UnicastGroup.Marshal(b, m, deterministic)
}
func (m *L3UnicastGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L3UnicastGroup.Merge(m, src)
}
func (m *L3UnicastGroup) XXX_Size() int {
	return xxx_messageInfo_L3UnicastGroup.Size(m)
}
func (m *L3UnicastGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_L3UnicastGroup.DiscardUnknown(m)
}

var xxx_messageInfo_L3UnicastGroup proto.InternalMessageInfo

func (m *L3UnicastGroup) GetNeId() uint32 {
	if m != nil {
		return m.NeId
	}
	return 0
}

func (m *L3UnicastGroup) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *L3UnicastGroup) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

func (m *L3UnicastGroup) GetEthDst() string {
	if m != nil {
		return m.EthDst
	}
	return ""
}

func (m *L3UnicastGroup) GetEthSrc() string {
	if m != nil {
		return m.EthSrc
	}
	return ""
}

func (m *L3UnicastGroup) GetPhyPortId() uint32 {
	if m != nil {
		return m.PhyPortId
	}
	return 0
}

func (m *L3UnicastGroup) GetTunType() TunnelType_Type {
	if m != nil {
		return m.TunType
	}
	return TunnelType_NOP
}

func (m *L3UnicastGroup) GetTunRemote() string {
	if m != nil {
		return m.TunRemote
	}
	return ""
}

func (m *L3UnicastGroup) GetTunLocal() string {
	if m != nil {
		return m.TunLocal
	}
	return ""
}

// 0x90VVNNNN (VV:VRF, NNNN:NeId)
type MPLSInterfaceGroup struct {
	NeId                 uint32   `protobuf:"varint,1,opt,name=ne_id,json=neId,proto3" json:"ne_id,omitempty"`
	PortId               uint32   `protobuf:"varint,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	VlanVid              uint32   `protobuf:"varint,3,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	EthDst               string   `protobuf:"bytes,4,opt,name=eth_dst,json=ethDst,proto3" json:"eth_dst,omitempty"`
	EthSrc               string   `protobuf:"bytes,5,opt,name=eth_src,json=ethSrc,proto3" json:"eth_src,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MPLSInterfaceGroup) Reset()         { *m = MPLSInterfaceGroup{} }
func (m *MPLSInterfaceGroup) String() string { return proto.CompactTextString(m) }
func (*MPLSInterfaceGroup) ProtoMessage()    {}
func (*MPLSInterfaceGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{17}
}

func (m *MPLSInterfaceGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MPLSInterfaceGroup.Unmarshal(m, b)
}
func (m *MPLSInterfaceGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MPLSInterfaceGroup.Marshal(b, m, deterministic)
}
func (m *MPLSInterfaceGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MPLSInterfaceGroup.Merge(m, src)
}
func (m *MPLSInterfaceGroup) XXX_Size() int {
	return xxx_messageInfo_MPLSInterfaceGroup.Size(m)
}
func (m *MPLSInterfaceGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_MPLSInterfaceGroup.DiscardUnknown(m)
}

var xxx_messageInfo_MPLSInterfaceGroup proto.InternalMessageInfo

func (m *MPLSInterfaceGroup) GetNeId() uint32 {
	if m != nil {
		return m.NeId
	}
	return 0
}

func (m *MPLSInterfaceGroup) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *MPLSInterfaceGroup) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

func (m *MPLSInterfaceGroup) GetEthDst() string {
	if m != nil {
		return m.EthDst
	}
	return ""
}

func (m *MPLSInterfaceGroup) GetEthSrc() string {
	if m != nil {
		return m.EthSrc
	}
	return ""
}

// 0x9x0LLLLL (LLLL: label)
type MPLSLabelGroup struct {
	DstId                uint32         `protobuf:"varint,1,opt,name=dst_id,json=dstId,proto3" json:"dst_id,omitempty"`
	NewLabel             uint32         `protobuf:"varint,2,opt,name=new_label,json=newLabel,proto3" json:"new_label,omitempty"`
	NeId                 uint32         `protobuf:"varint,3,opt,name=ne_id,json=neId,proto3" json:"ne_id,omitempty"`
	NewDstId             uint32         `protobuf:"varint,4,opt,name=new_dst_id,json=newDstId,proto3" json:"new_dst_id,omitempty"`
	GType                GroupMod_GType `protobuf:"varint,5,opt,name=g_type,json=gType,proto3,enum=fibcapi.GroupMod_GType" json:"g_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *MPLSLabelGroup) Reset()         { *m = MPLSLabelGroup{} }
func (m *MPLSLabelGroup) String() string { return proto.CompactTextString(m) }
func (*MPLSLabelGroup) ProtoMessage()    {}
func (*MPLSLabelGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{18}
}

func (m *MPLSLabelGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MPLSLabelGroup.Unmarshal(m, b)
}
func (m *MPLSLabelGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MPLSLabelGroup.Marshal(b, m, deterministic)
}
func (m *MPLSLabelGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MPLSLabelGroup.Merge(m, src)
}
func (m *MPLSLabelGroup) XXX_Size() int {
	return xxx_messageInfo_MPLSLabelGroup.Size(m)
}
func (m *MPLSLabelGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_MPLSLabelGroup.DiscardUnknown(m)
}

var xxx_messageInfo_MPLSLabelGroup proto.InternalMessageInfo

func (m *MPLSLabelGroup) GetDstId() uint32 {
	if m != nil {
		return m.DstId
	}
	return 0
}

func (m *MPLSLabelGroup) GetNewLabel() uint32 {
	if m != nil {
		return m.NewLabel
	}
	return 0
}

func (m *MPLSLabelGroup) GetNeId() uint32 {
	if m != nil {
		return m.NeId
	}
	return 0
}

func (m *MPLSLabelGroup) GetNewDstId() uint32 {
	if m != nil {
		return m.NewDstId
	}
	return 0
}

func (m *MPLSLabelGroup) GetGType() GroupMod_GType {
	if m != nil {
		return m.GType
	}
	return GroupMod_UNSPEC
}

// FFHello
type FFHello struct {
	DpId                 uint64         `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	DpType               FFHello_DpType `protobuf:"varint,2,opt,name=dp_type,json=dpType,proto3,enum=fibcapi.FFHello_DpType" json:"dp_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *FFHello) Reset()         { *m = FFHello{} }
func (m *FFHello) String() string { return proto.CompactTextString(m) }
func (*FFHello) ProtoMessage()    {}
func (*FFHello) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{19}
}

func (m *FFHello) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFHello.Unmarshal(m, b)
}
func (m *FFHello) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFHello.Marshal(b, m, deterministic)
}
func (m *FFHello) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFHello.Merge(m, src)
}
func (m *FFHello) XXX_Size() int {
	return xxx_messageInfo_FFHello.Size(m)
}
func (m *FFHello) XXX_DiscardUnknown() {
	xxx_messageInfo_FFHello.DiscardUnknown(m)
}

var xxx_messageInfo_FFHello proto.InternalMessageInfo

func (m *FFHello) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFHello) GetDpType() FFHello_DpType {
	if m != nil {
		return m.DpType
	}
	return FFHello_NOP
}

// FFPort
type FFPort struct {
	PortNo               uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	HwAddr               string   `protobuf:"bytes,2,opt,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Config               uint32   `protobuf:"varint,4,opt,name=config,proto3" json:"config,omitempty"`
	State                uint32   `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"`
	Curr                 uint32   `protobuf:"varint,6,opt,name=curr,proto3" json:"curr,omitempty"`
	Advertised           uint32   `protobuf:"varint,7,opt,name=advertised,proto3" json:"advertised,omitempty"`
	CurrSpeed            uint32   `protobuf:"varint,8,opt,name=curr_speed,json=currSpeed,proto3" json:"curr_speed,omitempty"`
	MaxSpeed             uint32   `protobuf:"varint,9,opt,name=max_speed,json=maxSpeed,proto3" json:"max_speed,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFPort) Reset()         { *m = FFPort{} }
func (m *FFPort) String() string { return proto.CompactTextString(m) }
func (*FFPort) ProtoMessage()    {}
func (*FFPort) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{20}
}

func (m *FFPort) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPort.Unmarshal(m, b)
}
func (m *FFPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPort.Marshal(b, m, deterministic)
}
func (m *FFPort) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPort.Merge(m, src)
}
func (m *FFPort) XXX_Size() int {
	return xxx_messageInfo_FFPort.Size(m)
}
func (m *FFPort) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPort.DiscardUnknown(m)
}

var xxx_messageInfo_FFPort proto.InternalMessageInfo

func (m *FFPort) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPort) GetHwAddr() string {
	if m != nil {
		return m.HwAddr
	}
	return ""
}

func (m *FFPort) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *FFPort) GetConfig() uint32 {
	if m != nil {
		return m.Config
	}
	return 0
}

func (m *FFPort) GetState() uint32 {
	if m != nil {
		return m.State
	}
	return 0
}

func (m *FFPort) GetCurr() uint32 {
	if m != nil {
		return m.Curr
	}
	return 0
}

func (m *FFPort) GetAdvertised() uint32 {
	if m != nil {
		return m.Advertised
	}
	return 0
}

func (m *FFPort) GetCurrSpeed() uint32 {
	if m != nil {
		return m.CurrSpeed
	}
	return 0
}

func (m *FFPort) GetMaxSpeed() uint32 {
	if m != nil {
		return m.MaxSpeed
	}
	return 0
}

// Port Stats
type FFPortStats struct {
	PortNo               uint32            `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	Values               map[string]uint64 `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
	SValues              map[string]string `protobuf:"bytes,3,rep,name=s_values,json=sValues,proto3" json:"s_values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *FFPortStats) Reset()         { *m = FFPortStats{} }
func (m *FFPortStats) String() string { return proto.CompactTextString(m) }
func (*FFPortStats) ProtoMessage()    {}
func (*FFPortStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{21}
}

func (m *FFPortStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPortStats.Unmarshal(m, b)
}
func (m *FFPortStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPortStats.Marshal(b, m, deterministic)
}
func (m *FFPortStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPortStats.Merge(m, src)
}
func (m *FFPortStats) XXX_Size() int {
	return xxx_messageInfo_FFPortStats.Size(m)
}
func (m *FFPortStats) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPortStats.DiscardUnknown(m)
}

var xxx_messageInfo_FFPortStats proto.InternalMessageInfo

func (m *FFPortStats) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPortStats) GetValues() map[string]uint64 {
	if m != nil {
		return m.Values
	}
	return nil
}

func (m *FFPortStats) GetSValues() map[string]string {
	if m != nil {
		return m.SValues
	}
	return nil
}

// OAM
type OAM struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OAM) Reset()         { *m = OAM{} }
func (m *OAM) String() string { return proto.CompactTextString(m) }
func (*OAM) ProtoMessage()    {}
func (*OAM) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22}
}

func (m *OAM) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OAM.Unmarshal(m, b)
}
func (m *OAM) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OAM.Marshal(b, m, deterministic)
}
func (m *OAM) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OAM.Merge(m, src)
}
func (m *OAM) XXX_Size() int {
	return xxx_messageInfo_OAM.Size(m)
}
func (m *OAM) XXX_DiscardUnknown() {
	xxx_messageInfo_OAM.DiscardUnknown(m)
}

var xxx_messageInfo_OAM proto.InternalMessageInfo

type OAM_AuditRouteCntRequest struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OAM_AuditRouteCntRequest) Reset()         { *m = OAM_AuditRouteCntRequest{} }
func (m *OAM_AuditRouteCntRequest) String() string { return proto.CompactTextString(m) }
func (*OAM_AuditRouteCntRequest) ProtoMessage()    {}
func (*OAM_AuditRouteCntRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22, 0}
}

func (m *OAM_AuditRouteCntRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OAM_AuditRouteCntRequest.Unmarshal(m, b)
}
func (m *OAM_AuditRouteCntRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OAM_AuditRouteCntRequest.Marshal(b, m, deterministic)
}
func (m *OAM_AuditRouteCntRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OAM_AuditRouteCntRequest.Merge(m, src)
}
func (m *OAM_AuditRouteCntRequest) XXX_Size() int {
	return xxx_messageInfo_OAM_AuditRouteCntRequest.Size(m)
}
func (m *OAM_AuditRouteCntRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_OAM_AuditRouteCntRequest.DiscardUnknown(m)
}

var xxx_messageInfo_OAM_AuditRouteCntRequest proto.InternalMessageInfo

type OAM_AuditRouteCntReply struct {
	Count                uint64   `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *OAM_AuditRouteCntReply) Reset()         { *m = OAM_AuditRouteCntReply{} }
func (m *OAM_AuditRouteCntReply) String() string { return proto.CompactTextString(m) }
func (*OAM_AuditRouteCntReply) ProtoMessage()    {}
func (*OAM_AuditRouteCntReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22, 1}
}

func (m *OAM_AuditRouteCntReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OAM_AuditRouteCntReply.Unmarshal(m, b)
}
func (m *OAM_AuditRouteCntReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OAM_AuditRouteCntReply.Marshal(b, m, deterministic)
}
func (m *OAM_AuditRouteCntReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OAM_AuditRouteCntReply.Merge(m, src)
}
func (m *OAM_AuditRouteCntReply) XXX_Size() int {
	return xxx_messageInfo_OAM_AuditRouteCntReply.Size(m)
}
func (m *OAM_AuditRouteCntReply) XXX_DiscardUnknown() {
	xxx_messageInfo_OAM_AuditRouteCntReply.DiscardUnknown(m)
}

var xxx_messageInfo_OAM_AuditRouteCntReply proto.InternalMessageInfo

func (m *OAM_AuditRouteCntReply) GetCount() uint64 {
	if m != nil {
		return m.Count
	}
	return 0
}

type OAM_Request struct {
	DpId    uint64      `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	ReId    string      `protobuf:"bytes,2,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	OamType OAM_OAMType `protobuf:"varint,3,opt,name=oam_type,json=oamType,proto3,enum=fibcapi.OAM_OAMType" json:"oam_type,omitempty"`
	// Types that are valid to be assigned to Body:
	//	*OAM_Request_AuditRouteCnt
	Body                 isOAM_Request_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *OAM_Request) Reset()         { *m = OAM_Request{} }
func (m *OAM_Request) String() string { return proto.CompactTextString(m) }
func (*OAM_Request) ProtoMessage()    {}
func (*OAM_Request) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22, 2}
}

func (m *OAM_Request) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OAM_Request.Unmarshal(m, b)
}
func (m *OAM_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OAM_Request.Marshal(b, m, deterministic)
}
func (m *OAM_Request) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OAM_Request.Merge(m, src)
}
func (m *OAM_Request) XXX_Size() int {
	return xxx_messageInfo_OAM_Request.Size(m)
}
func (m *OAM_Request) XXX_DiscardUnknown() {
	xxx_messageInfo_OAM_Request.DiscardUnknown(m)
}

var xxx_messageInfo_OAM_Request proto.InternalMessageInfo

func (m *OAM_Request) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *OAM_Request) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *OAM_Request) GetOamType() OAM_OAMType {
	if m != nil {
		return m.OamType
	}
	return OAM_NOP
}

type isOAM_Request_Body interface {
	isOAM_Request_Body()
}

type OAM_Request_AuditRouteCnt struct {
	AuditRouteCnt *OAM_AuditRouteCntRequest `protobuf:"bytes,4,opt,name=audit_route_cnt,json=auditRouteCnt,proto3,oneof"`
}

func (*OAM_Request_AuditRouteCnt) isOAM_Request_Body() {}

func (m *OAM_Request) GetBody() isOAM_Request_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *OAM_Request) GetAuditRouteCnt() *OAM_AuditRouteCntRequest {
	if x, ok := m.GetBody().(*OAM_Request_AuditRouteCnt); ok {
		return x.AuditRouteCnt
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*OAM_Request) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*OAM_Request_AuditRouteCnt)(nil),
	}
}

type OAM_Reply struct {
	DpId    uint64      `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	ReId    string      `protobuf:"bytes,2,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	OamType OAM_OAMType `protobuf:"varint,3,opt,name=oam_type,json=oamType,proto3,enum=fibcapi.OAM_OAMType" json:"oam_type,omitempty"`
	// Types that are valid to be assigned to Body:
	//	*OAM_Reply_AuditRouteCnt
	Body                 isOAM_Reply_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *OAM_Reply) Reset()         { *m = OAM_Reply{} }
func (m *OAM_Reply) String() string { return proto.CompactTextString(m) }
func (*OAM_Reply) ProtoMessage()    {}
func (*OAM_Reply) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{22, 3}
}

func (m *OAM_Reply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OAM_Reply.Unmarshal(m, b)
}
func (m *OAM_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OAM_Reply.Marshal(b, m, deterministic)
}
func (m *OAM_Reply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OAM_Reply.Merge(m, src)
}
func (m *OAM_Reply) XXX_Size() int {
	return xxx_messageInfo_OAM_Reply.Size(m)
}
func (m *OAM_Reply) XXX_DiscardUnknown() {
	xxx_messageInfo_OAM_Reply.DiscardUnknown(m)
}

var xxx_messageInfo_OAM_Reply proto.InternalMessageInfo

func (m *OAM_Reply) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *OAM_Reply) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *OAM_Reply) GetOamType() OAM_OAMType {
	if m != nil {
		return m.OamType
	}
	return OAM_NOP
}

type isOAM_Reply_Body interface {
	isOAM_Reply_Body()
}

type OAM_Reply_AuditRouteCnt struct {
	AuditRouteCnt *OAM_AuditRouteCntReply `protobuf:"bytes,4,opt,name=audit_route_cnt,json=auditRouteCnt,proto3,oneof"`
}

func (*OAM_Reply_AuditRouteCnt) isOAM_Reply_Body() {}

func (m *OAM_Reply) GetBody() isOAM_Reply_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *OAM_Reply) GetAuditRouteCnt() *OAM_AuditRouteCntReply {
	if x, ok := m.GetBody().(*OAM_Reply_AuditRouteCnt); ok {
		return x.AuditRouteCnt
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*OAM_Reply) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*OAM_Reply_AuditRouteCnt)(nil),
	}
}

// Multipart
type FFMultipart struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFMultipart) Reset()         { *m = FFMultipart{} }
func (m *FFMultipart) String() string { return proto.CompactTextString(m) }
func (*FFMultipart) ProtoMessage()    {}
func (*FFMultipart) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23}
}

func (m *FFMultipart) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart.Unmarshal(m, b)
}
func (m *FFMultipart) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart.Marshal(b, m, deterministic)
}
func (m *FFMultipart) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart.Merge(m, src)
}
func (m *FFMultipart) XXX_Size() int {
	return xxx_messageInfo_FFMultipart.Size(m)
}
func (m *FFMultipart) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart proto.InternalMessageInfo

type FFMultipart_PortRequest struct {
	PortNo               uint32          `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	Names                []string        `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"`
	Cmd                  FFPortStats_Cmd `protobuf:"varint,3,opt,name=cmd,proto3,enum=fibcapi.FFPortStats_Cmd" json:"cmd,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *FFMultipart_PortRequest) Reset()         { *m = FFMultipart_PortRequest{} }
func (m *FFMultipart_PortRequest) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_PortRequest) ProtoMessage()    {}
func (*FFMultipart_PortRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 0}
}

func (m *FFMultipart_PortRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_PortRequest.Unmarshal(m, b)
}
func (m *FFMultipart_PortRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_PortRequest.Marshal(b, m, deterministic)
}
func (m *FFMultipart_PortRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_PortRequest.Merge(m, src)
}
func (m *FFMultipart_PortRequest) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_PortRequest.Size(m)
}
func (m *FFMultipart_PortRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_PortRequest.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_PortRequest proto.InternalMessageInfo

func (m *FFMultipart_PortRequest) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFMultipart_PortRequest) GetNames() []string {
	if m != nil {
		return m.Names
	}
	return nil
}

func (m *FFMultipart_PortRequest) GetCmd() FFPortStats_Cmd {
	if m != nil {
		return m.Cmd
	}
	return FFPortStats_GET
}

type FFMultipart_PortReply struct {
	Stats                []*FFPortStats `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *FFMultipart_PortReply) Reset()         { *m = FFMultipart_PortReply{} }
func (m *FFMultipart_PortReply) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_PortReply) ProtoMessage()    {}
func (*FFMultipart_PortReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 1}
}

func (m *FFMultipart_PortReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_PortReply.Unmarshal(m, b)
}
func (m *FFMultipart_PortReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_PortReply.Marshal(b, m, deterministic)
}
func (m *FFMultipart_PortReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_PortReply.Merge(m, src)
}
func (m *FFMultipart_PortReply) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_PortReply.Size(m)
}
func (m *FFMultipart_PortReply) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_PortReply.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_PortReply proto.InternalMessageInfo

func (m *FFMultipart_PortReply) GetStats() []*FFPortStats {
	if m != nil {
		return m.Stats
	}
	return nil
}

type FFMultipart_PortDescRequest struct {
	Internal             bool     `protobuf:"varint,1,opt,name=internal,proto3" json:"internal,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFMultipart_PortDescRequest) Reset()         { *m = FFMultipart_PortDescRequest{} }
func (m *FFMultipart_PortDescRequest) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_PortDescRequest) ProtoMessage()    {}
func (*FFMultipart_PortDescRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 2}
}

func (m *FFMultipart_PortDescRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_PortDescRequest.Unmarshal(m, b)
}
func (m *FFMultipart_PortDescRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_PortDescRequest.Marshal(b, m, deterministic)
}
func (m *FFMultipart_PortDescRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_PortDescRequest.Merge(m, src)
}
func (m *FFMultipart_PortDescRequest) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_PortDescRequest.Size(m)
}
func (m *FFMultipart_PortDescRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_PortDescRequest.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_PortDescRequest proto.InternalMessageInfo

func (m *FFMultipart_PortDescRequest) GetInternal() bool {
	if m != nil {
		return m.Internal
	}
	return false
}

type FFMultipart_PortDescReply struct {
	Internal             bool      `protobuf:"varint,1,opt,name=internal,proto3" json:"internal,omitempty"`
	Port                 []*FFPort `protobuf:"bytes,2,rep,name=port,proto3" json:"port,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *FFMultipart_PortDescReply) Reset()         { *m = FFMultipart_PortDescReply{} }
func (m *FFMultipart_PortDescReply) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_PortDescReply) ProtoMessage()    {}
func (*FFMultipart_PortDescReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 3}
}

func (m *FFMultipart_PortDescReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_PortDescReply.Unmarshal(m, b)
}
func (m *FFMultipart_PortDescReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_PortDescReply.Marshal(b, m, deterministic)
}
func (m *FFMultipart_PortDescReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_PortDescReply.Merge(m, src)
}
func (m *FFMultipart_PortDescReply) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_PortDescReply.Size(m)
}
func (m *FFMultipart_PortDescReply) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_PortDescReply.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_PortDescReply proto.InternalMessageInfo

func (m *FFMultipart_PortDescReply) GetInternal() bool {
	if m != nil {
		return m.Internal
	}
	return false
}

func (m *FFMultipart_PortDescReply) GetPort() []*FFPort {
	if m != nil {
		return m.Port
	}
	return nil
}

type FFMultipart_Request struct {
	DpId   uint64             `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	MpType FFMultipart_MpType `protobuf:"varint,2,opt,name=mp_type,json=mpType,proto3,enum=fibcapi.FFMultipart_MpType" json:"mp_type,omitempty"`
	// Types that are valid to be assigned to Body:
	//	*FFMultipart_Request_Port
	//	*FFMultipart_Request_PortDesc
	Body                 isFFMultipart_Request_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *FFMultipart_Request) Reset()         { *m = FFMultipart_Request{} }
func (m *FFMultipart_Request) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_Request) ProtoMessage()    {}
func (*FFMultipart_Request) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 4}
}

func (m *FFMultipart_Request) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_Request.Unmarshal(m, b)
}
func (m *FFMultipart_Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_Request.Marshal(b, m, deterministic)
}
func (m *FFMultipart_Request) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_Request.Merge(m, src)
}
func (m *FFMultipart_Request) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_Request.Size(m)
}
func (m *FFMultipart_Request) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_Request.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_Request proto.InternalMessageInfo

func (m *FFMultipart_Request) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFMultipart_Request) GetMpType() FFMultipart_MpType {
	if m != nil {
		return m.MpType
	}
	return FFMultipart_NOP
}

type isFFMultipart_Request_Body interface {
	isFFMultipart_Request_Body()
}

type FFMultipart_Request_Port struct {
	Port *FFMultipart_PortRequest `protobuf:"bytes,3,opt,name=port,proto3,oneof"`
}

type FFMultipart_Request_PortDesc struct {
	PortDesc *FFMultipart_PortDescRequest `protobuf:"bytes,4,opt,name=port_desc,json=portDesc,proto3,oneof"`
}

func (*FFMultipart_Request_Port) isFFMultipart_Request_Body() {}

func (*FFMultipart_Request_PortDesc) isFFMultipart_Request_Body() {}

func (m *FFMultipart_Request) GetBody() isFFMultipart_Request_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *FFMultipart_Request) GetPort() *FFMultipart_PortRequest {
	if x, ok := m.GetBody().(*FFMultipart_Request_Port); ok {
		return x.Port
	}
	return nil
}

func (m *FFMultipart_Request) GetPortDesc() *FFMultipart_PortDescRequest {
	if x, ok := m.GetBody().(*FFMultipart_Request_PortDesc); ok {
		return x.PortDesc
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FFMultipart_Request) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FFMultipart_Request_Port)(nil),
		(*FFMultipart_Request_PortDesc)(nil),
	}
}

type FFMultipart_Reply struct {
	DpId   uint64             `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	MpType FFMultipart_MpType `protobuf:"varint,2,opt,name=mp_type,json=mpType,proto3,enum=fibcapi.FFMultipart_MpType" json:"mp_type,omitempty"`
	// Types that are valid to be assigned to Body:
	//	*FFMultipart_Reply_Port
	//	*FFMultipart_Reply_PortDesc
	Body                 isFFMultipart_Reply_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *FFMultipart_Reply) Reset()         { *m = FFMultipart_Reply{} }
func (m *FFMultipart_Reply) String() string { return proto.CompactTextString(m) }
func (*FFMultipart_Reply) ProtoMessage()    {}
func (*FFMultipart_Reply) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{23, 5}
}

func (m *FFMultipart_Reply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFMultipart_Reply.Unmarshal(m, b)
}
func (m *FFMultipart_Reply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFMultipart_Reply.Marshal(b, m, deterministic)
}
func (m *FFMultipart_Reply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFMultipart_Reply.Merge(m, src)
}
func (m *FFMultipart_Reply) XXX_Size() int {
	return xxx_messageInfo_FFMultipart_Reply.Size(m)
}
func (m *FFMultipart_Reply) XXX_DiscardUnknown() {
	xxx_messageInfo_FFMultipart_Reply.DiscardUnknown(m)
}

var xxx_messageInfo_FFMultipart_Reply proto.InternalMessageInfo

func (m *FFMultipart_Reply) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFMultipart_Reply) GetMpType() FFMultipart_MpType {
	if m != nil {
		return m.MpType
	}
	return FFMultipart_NOP
}

type isFFMultipart_Reply_Body interface {
	isFFMultipart_Reply_Body()
}

type FFMultipart_Reply_Port struct {
	Port *FFMultipart_PortReply `protobuf:"bytes,3,opt,name=port,proto3,oneof"`
}

type FFMultipart_Reply_PortDesc struct {
	PortDesc *FFMultipart_PortDescReply `protobuf:"bytes,4,opt,name=port_desc,json=portDesc,proto3,oneof"`
}

func (*FFMultipart_Reply_Port) isFFMultipart_Reply_Body() {}

func (*FFMultipart_Reply_PortDesc) isFFMultipart_Reply_Body() {}

func (m *FFMultipart_Reply) GetBody() isFFMultipart_Reply_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *FFMultipart_Reply) GetPort() *FFMultipart_PortReply {
	if x, ok := m.GetBody().(*FFMultipart_Reply_Port); ok {
		return x.Port
	}
	return nil
}

func (m *FFMultipart_Reply) GetPortDesc() *FFMultipart_PortDescReply {
	if x, ok := m.GetBody().(*FFMultipart_Reply_PortDesc); ok {
		return x.PortDesc
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FFMultipart_Reply) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FFMultipart_Reply_Port)(nil),
		(*FFMultipart_Reply_PortDesc)(nil),
	}
}

// PacketIn
type FFPacketIn struct {
	DpId                 uint64   `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	PortNo               uint32   `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFPacketIn) Reset()         { *m = FFPacketIn{} }
func (m *FFPacketIn) String() string { return proto.CompactTextString(m) }
func (*FFPacketIn) ProtoMessage()    {}
func (*FFPacketIn) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{24}
}

func (m *FFPacketIn) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPacketIn.Unmarshal(m, b)
}
func (m *FFPacketIn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPacketIn.Marshal(b, m, deterministic)
}
func (m *FFPacketIn) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPacketIn.Merge(m, src)
}
func (m *FFPacketIn) XXX_Size() int {
	return xxx_messageInfo_FFPacketIn.Size(m)
}
func (m *FFPacketIn) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPacketIn.DiscardUnknown(m)
}

var xxx_messageInfo_FFPacketIn proto.InternalMessageInfo

func (m *FFPacketIn) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFPacketIn) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPacketIn) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

// PacketOUT
type FFPacketOut struct {
	DpId                 uint64   `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	PortNo               uint32   `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFPacketOut) Reset()         { *m = FFPacketOut{} }
func (m *FFPacketOut) String() string { return proto.CompactTextString(m) }
func (*FFPacketOut) ProtoMessage()    {}
func (*FFPacketOut) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{25}
}

func (m *FFPacketOut) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPacketOut.Unmarshal(m, b)
}
func (m *FFPacketOut) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPacketOut.Marshal(b, m, deterministic)
}
func (m *FFPacketOut) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPacketOut.Merge(m, src)
}
func (m *FFPacketOut) XXX_Size() int {
	return xxx_messageInfo_FFPacketOut.Size(m)
}
func (m *FFPacketOut) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPacketOut.DiscardUnknown(m)
}

var xxx_messageInfo_FFPacketOut proto.InternalMessageInfo

func (m *FFPacketOut) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFPacketOut) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPacketOut) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type FFPacket struct {
	DpId                 uint64   `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	PortNo               uint32   `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	ReId                 string   `protobuf:"bytes,3,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	Ifname               string   `protobuf:"bytes,4,opt,name=ifname,proto3" json:"ifname,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FFPacket) Reset()         { *m = FFPacket{} }
func (m *FFPacket) String() string { return proto.CompactTextString(m) }
func (*FFPacket) ProtoMessage()    {}
func (*FFPacket) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{26}
}

func (m *FFPacket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPacket.Unmarshal(m, b)
}
func (m *FFPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPacket.Marshal(b, m, deterministic)
}
func (m *FFPacket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPacket.Merge(m, src)
}
func (m *FFPacket) XXX_Size() int {
	return xxx_messageInfo_FFPacket.Size(m)
}
func (m *FFPacket) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPacket.DiscardUnknown(m)
}

var xxx_messageInfo_FFPacket proto.InternalMessageInfo

func (m *FFPacket) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFPacket) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPacket) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *FFPacket) GetIfname() string {
	if m != nil {
		return m.Ifname
	}
	return ""
}

// Port Status
type FFPortStatus struct {
	DpId                 uint64              `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	Port                 *FFPort             `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"`
	Reason               FFPortStatus_Reason `protobuf:"varint,3,opt,name=reason,proto3,enum=fibcapi.FFPortStatus_Reason" json:"reason,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *FFPortStatus) Reset()         { *m = FFPortStatus{} }
func (m *FFPortStatus) String() string { return proto.CompactTextString(m) }
func (*FFPortStatus) ProtoMessage()    {}
func (*FFPortStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{27}
}

func (m *FFPortStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPortStatus.Unmarshal(m, b)
}
func (m *FFPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPortStatus.Marshal(b, m, deterministic)
}
func (m *FFPortStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPortStatus.Merge(m, src)
}
func (m *FFPortStatus) XXX_Size() int {
	return xxx_messageInfo_FFPortStatus.Size(m)
}
func (m *FFPortStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPortStatus.DiscardUnknown(m)
}

var xxx_messageInfo_FFPortStatus proto.InternalMessageInfo

func (m *FFPortStatus) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFPortStatus) GetPort() *FFPort {
	if m != nil {
		return m.Port
	}
	return nil
}

func (m *FFPortStatus) GetReason() FFPortStatus_Reason {
	if m != nil {
		return m.Reason
	}
	return FFPortStatus_ADD
}

// PortMod
type FFPortMod struct {
	DpId                 uint64            `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	PortNo               uint32            `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
	HwAddr               string            `protobuf:"bytes,3,opt,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
	Status               PortStatus_Status `protobuf:"varint,4,opt,name=status,proto3,enum=fibcapi.PortStatus_Status" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *FFPortMod) Reset()         { *m = FFPortMod{} }
func (m *FFPortMod) String() string { return proto.CompactTextString(m) }
func (*FFPortMod) ProtoMessage()    {}
func (*FFPortMod) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{28}
}

func (m *FFPortMod) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFPortMod.Unmarshal(m, b)
}
func (m *FFPortMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFPortMod.Marshal(b, m, deterministic)
}
func (m *FFPortMod) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFPortMod.Merge(m, src)
}
func (m *FFPortMod) XXX_Size() int {
	return xxx_messageInfo_FFPortMod.Size(m)
}
func (m *FFPortMod) XXX_DiscardUnknown() {
	xxx_messageInfo_FFPortMod.DiscardUnknown(m)
}

var xxx_messageInfo_FFPortMod proto.InternalMessageInfo

func (m *FFPortMod) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFPortMod) GetPortNo() uint32 {
	if m != nil {
		return m.PortNo
	}
	return 0
}

func (m *FFPortMod) GetHwAddr() string {
	if m != nil {
		return m.HwAddr
	}
	return ""
}

func (m *FFPortMod) GetStatus() PortStatus_Status {
	if m != nil {
		return m.Status
	}
	return PortStatus_NOP
}

// FFL2AddrStatus (dp->fibc)
type FFL2AddrStatus struct {
	DpId                 uint64    `protobuf:"varint,1,opt,name=dp_id,json=dpId,proto3" json:"dp_id,omitempty"`
	Addrs                []*L2Addr `protobuf:"bytes,2,rep,name=addrs,proto3" json:"addrs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *FFL2AddrStatus) Reset()         { *m = FFL2AddrStatus{} }
func (m *FFL2AddrStatus) String() string { return proto.CompactTextString(m) }
func (*FFL2AddrStatus) ProtoMessage()    {}
func (*FFL2AddrStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{29}
}

func (m *FFL2AddrStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FFL2AddrStatus.Unmarshal(m, b)
}
func (m *FFL2AddrStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FFL2AddrStatus.Marshal(b, m, deterministic)
}
func (m *FFL2AddrStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FFL2AddrStatus.Merge(m, src)
}
func (m *FFL2AddrStatus) XXX_Size() int {
	return xxx_messageInfo_FFL2AddrStatus.Size(m)
}
func (m *FFL2AddrStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_FFL2AddrStatus.DiscardUnknown(m)
}

var xxx_messageInfo_FFL2AddrStatus proto.InternalMessageInfo

func (m *FFL2AddrStatus) GetDpId() uint64 {
	if m != nil {
		return m.DpId
	}
	return 0
}

func (m *FFL2AddrStatus) GetAddrs() []*L2Addr {
	if m != nil {
		return m.Addrs
	}
	return nil
}

// L2AddrStatus (fibc->ribc)
type L2AddrStatus struct {
	ReId                 string    `protobuf:"bytes,1,opt,name=re_id,json=reId,proto3" json:"re_id,omitempty"`
	Addrs                []*L2Addr `protobuf:"bytes,2,rep,name=addrs,proto3" json:"addrs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *L2AddrStatus) Reset()         { *m = L2AddrStatus{} }
func (m *L2AddrStatus) String() string { return proto.CompactTextString(m) }
func (*L2AddrStatus) ProtoMessage()    {}
func (*L2AddrStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{30}
}

func (m *L2AddrStatus) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L2AddrStatus.Unmarshal(m, b)
}
func (m *L2AddrStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L2AddrStatus.Marshal(b, m, deterministic)
}
func (m *L2AddrStatus) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L2AddrStatus.Merge(m, src)
}
func (m *L2AddrStatus) XXX_Size() int {
	return xxx_messageInfo_L2AddrStatus.Size(m)
}
func (m *L2AddrStatus) XXX_DiscardUnknown() {
	xxx_messageInfo_L2AddrStatus.DiscardUnknown(m)
}

var xxx_messageInfo_L2AddrStatus proto.InternalMessageInfo

func (m *L2AddrStatus) GetReId() string {
	if m != nil {
		return m.ReId
	}
	return ""
}

func (m *L2AddrStatus) GetAddrs() []*L2Addr {
	if m != nil {
		return m.Addrs
	}
	return nil
}

// L2Addr
type L2Addr struct {
	HwAddr               string        `protobuf:"bytes,1,opt,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
	VlanVid              uint32        `protobuf:"varint,2,opt,name=vlan_vid,json=vlanVid,proto3" json:"vlan_vid,omitempty"`
	PortId               uint32        `protobuf:"varint,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
	Ifname               string        `protobuf:"bytes,4,opt,name=ifname,proto3" json:"ifname,omitempty"`
	Reason               L2Addr_Reason `protobuf:"varint,5,opt,name=reason,proto3,enum=fibcapi.L2Addr_Reason" json:"reason,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *L2Addr) Reset()         { *m = L2Addr{} }
func (m *L2Addr) String() string { return proto.CompactTextString(m) }
func (*L2Addr) ProtoMessage()    {}
func (*L2Addr) Descriptor() ([]byte, []int) {
	return fileDescriptor_68149358b23bd798, []int{31}
}

func (m *L2Addr) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L2Addr.Unmarshal(m, b)
}
func (m *L2Addr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L2Addr.Marshal(b, m, deterministic)
}
func (m *L2Addr) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L2Addr.Merge(m, src)
}
func (m *L2Addr) XXX_Size() int {
	return xxx_messageInfo_L2Addr.Size(m)
}
func (m *L2Addr) XXX_DiscardUnknown() {
	xxx_messageInfo_L2Addr.DiscardUnknown(m)
}

var xxx_messageInfo_L2Addr proto.InternalMessageInfo

func (m *L2Addr) GetHwAddr() string {
	if m != nil {
		return m.HwAddr
	}
	return ""
}

func (m *L2Addr) GetVlanVid() uint32 {
	if m != nil {
		return m.VlanVid
	}
	return 0
}

func (m *L2Addr) GetPortId() uint32 {
	if m != nil {
		return m.PortId
	}
	return 0
}

func (m *L2Addr) GetIfname() string {
	if m != nil {
		return m.Ifname
	}
	return ""
}

func (m *L2Addr) GetReason() L2Addr_Reason {
	if m != nil {
		return m.Reason
	}
	return L2Addr_NOP
}

func init() {
	proto.RegisterEnum("fibcapi.FFM", FFM_name, FFM_value)
	proto.RegisterEnum("fibcapi.DpStatus_Status", DpStatus_Status_name, DpStatus_Status_value)
	proto.RegisterEnum("fibcapi.TunnelType_Type", TunnelType_Type_name, TunnelType_Type_value)
	proto.RegisterEnum("fibcapi.BridgeVlanInfo_Flags", BridgeVlanInfo_Flags_name, BridgeVlanInfo_Flags_value)
	proto.RegisterEnum("fibcapi.PortStatus_Status", PortStatus_Status_name, PortStatus_Status_value)
	proto.RegisterEnum("fibcapi.LinkType_Type", LinkType_Type_name, LinkType_Type_value)
	proto.RegisterEnum("fibcapi.PortConfig_Cmd", PortConfig_Cmd_name, PortConfig_Cmd_value)
	proto.RegisterEnum("fibcapi.FlowMod_Cmd", FlowMod_Cmd_name, FlowMod_Cmd_value)
	proto.RegisterEnum("fibcapi.FlowMod_Table", FlowMod_Table_name, FlowMod_Table_value)
	proto.RegisterEnum("fibcapi.GroupMod_Cmd", GroupMod_Cmd_name, GroupMod_Cmd_value)
	proto.RegisterEnum("fibcapi.GroupMod_GType", GroupMod_GType_name, GroupMod_GType_value)
	proto.RegisterEnum("fibcapi.VLANFlow_Action_Name", VLANFlow_Action_Name_name, VLANFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.TerminationMacFlow_Action_Name", TerminationMacFlow_Action_Name_name, TerminationMacFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.MPLSFlow_Action_Name", MPLSFlow_Action_Name_name, MPLSFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.UnicastRoutingFlow_Origin", UnicastRoutingFlow_Origin_name, UnicastRoutingFlow_Origin_value)
	proto.RegisterEnum("fibcapi.UnicastRoutingFlow_Action_Name", UnicastRoutingFlow_Action_Name_name, UnicastRoutingFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.BridgingFlow_Action_Name", BridgingFlow_Action_Name_name, BridgingFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.PolicyACLFlow_Action_Name", PolicyACLFlow_Action_Name_name, PolicyACLFlow_Action_Name_value)
	proto.RegisterEnum("fibcapi.FFHello_DpType", FFHello_DpType_name, FFHello_DpType_value)
	proto.RegisterEnum("fibcapi.FFPortStats_Cmd", FFPortStats_Cmd_name, FFPortStats_Cmd_value)
	proto.RegisterEnum("fibcapi.OAM_OAMType", OAM_OAMType_name, OAM_OAMType_value)
	proto.RegisterEnum("fibcapi.FFMultipart_MpType", FFMultipart_MpType_name, FFMultipart_MpType_value)
	proto.RegisterEnum("fibcapi.FFPortStatus_Reason", FFPortStatus_Reason_name, FFPortStatus_Reason_value)
	proto.RegisterEnum("fibcapi.L2Addr_Reason", L2Addr_Reason_name, L2Addr_Reason_value)
	proto.RegisterType((*Hello)(nil), "fibcapi.Hello")
	proto.RegisterType((*DpStatus)(nil), "fibcapi.DpStatus")
	proto.RegisterType((*TunnelType)(nil), "fibcapi.TunnelType")
	proto.RegisterType((*BridgeVlanInfo)(nil), "fibcapi.BridgeVlanInfo")
	proto.RegisterType((*PortStatus)(nil), "fibcapi.PortStatus")
	proto.RegisterType((*LinkType)(nil), "fibcapi.LinkType")
	proto.RegisterType((*PortConfig)(nil), "fibcapi.PortConfig")
	proto.RegisterType((*FlowMod)(nil), "fibcapi.FlowMod")
	proto.RegisterType((*GroupMod)(nil), "fibcapi.GroupMod")
	proto.RegisterType((*VLANFlow)(nil), "fibcapi.VLANFlow")
	proto.RegisterType((*VLANFlow_Match)(nil), "fibcapi.VLANFlow.Match")
	proto.RegisterType((*VLANFlow_Action)(nil), "fibcapi.VLANFlow.Action")
	proto.RegisterType((*TerminationMacFlow)(nil), "fibcapi.TerminationMacFlow")
	proto.RegisterType((*TerminationMacFlow_Match)(nil), "fibcapi.TerminationMacFlow.Match")
	proto.RegisterType((*TerminationMacFlow_Action)(nil), "fibcapi.TerminationMacFlow.Action")
	proto.RegisterType((*MPLSFlow)(nil), "fibcapi.MPLSFlow")
	proto.RegisterType((*MPLSFlow_Match)(nil), "fibcapi.MPLSFlow.Match")
	proto.RegisterType((*MPLSFlow_Action)(nil), "fibcapi.MPLSFlow.Action")
	proto.RegisterType((*UnicastRoutingFlow)(nil), "fibcapi.UnicastRoutingFlow")
	proto.RegisterType((*UnicastRoutingFlow_Match)(nil), "fibcapi.UnicastRoutingFlow.Match")
	proto.RegisterType((*UnicastRoutingFlow_Action)(nil), "fibcapi.UnicastRoutingFlow.Action")
	proto.RegisterType((*BridgingFlow)(nil), "fibcapi.BridgingFlow")
	proto.RegisterType((*BridgingFlow_Match)(nil), "fibcapi.BridgingFlow.Match")
	proto.RegisterType((*BridgingFlow_Action)(nil), "fibcapi.BridgingFlow.Action")
	proto.RegisterType((*PolicyACLFlow)(nil), "fibcapi.PolicyACLFlow")
	proto.RegisterType((*PolicyACLFlow_Match)(nil), "fibcapi.PolicyACLFlow.Match")
	proto.RegisterType((*PolicyACLFlow_Action)(nil), "fibcapi.PolicyACLFlow.Action")
	proto.RegisterType((*L2InterfaceGroup)(nil), "fibcapi.L2InterfaceGroup")
	proto.RegisterType((*L3UnicastGroup)(nil), "fibcapi.L3UnicastGroup")
	proto.RegisterType((*MPLSInterfaceGroup)(nil), "fibcapi.MPLSInterfaceGroup")
	proto.RegisterType((*MPLSLabelGroup)(nil), "fibcapi.MPLSLabelGroup")
	proto.RegisterType((*FFHello)(nil), "fibcapi.FFHello")
	proto.RegisterType((*FFPort)(nil), "fibcapi.FFPort")
	proto.RegisterType((*FFPortStats)(nil), "fibcapi.FFPortStats")
	proto.RegisterMapType((map[string]string)(nil), "fibcapi.FFPortStats.SValuesEntry")
	proto.RegisterMapType((map[string]uint64)(nil), "fibcapi.FFPortStats.ValuesEntry")
	proto.RegisterType((*OAM)(nil), "fibcapi.OAM")
	proto.RegisterType((*OAM_AuditRouteCntRequest)(nil), "fibcapi.OAM.AuditRouteCntRequest")
	proto.RegisterType((*OAM_AuditRouteCntReply)(nil), "fibcapi.OAM.AuditRouteCntReply")
	proto.RegisterType((*OAM_Request)(nil), "fibcapi.OAM.Request")
	proto.RegisterType((*OAM_Reply)(nil), "fibcapi.OAM.Reply")
	proto.RegisterType((*FFMultipart)(nil), "fibcapi.FFMultipart")
	proto.RegisterType((*FFMultipart_PortRequest)(nil), "fibcapi.FFMultipart.PortRequest")
	proto.RegisterType((*FFMultipart_PortReply)(nil), "fibcapi.FFMultipart.PortReply")
	proto.RegisterType((*FFMultipart_PortDescRequest)(nil), "fibcapi.FFMultipart.PortDescRequest")
	proto.RegisterType((*FFMultipart_PortDescReply)(nil), "fibcapi.FFMultipart.PortDescReply")
	proto.RegisterType((*FFMultipart_Request)(nil), "fibcapi.FFMultipart.Request")
	proto.RegisterType((*FFMultipart_Reply)(nil), "fibcapi.FFMultipart.Reply")
	proto.RegisterType((*FFPacketIn)(nil), "fibcapi.FFPacketIn")
	proto.RegisterType((*FFPacketOut)(nil), "fibcapi.FFPacketOut")
	proto.RegisterType((*FFPacket)(nil), "fibcapi.FFPacket")
	proto.RegisterType((*FFPortStatus)(nil), "fibcapi.FFPortStatus")
	proto.RegisterType((*FFPortMod)(nil), "fibcapi.FFPortMod")
	proto.RegisterType((*FFL2AddrStatus)(nil), "fibcapi.FFL2AddrStatus")
	proto.RegisterType((*L2AddrStatus)(nil), "fibcapi.L2AddrStatus")
	proto.RegisterType((*L2Addr)(nil), "fibcapi.L2Addr")
}

func init() { proto.RegisterFile("fibcapi.proto", fileDescriptor_68149358b23bd798) }

var fileDescriptor_68149358b23bd798 = []byte{
	// 3454 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x3a, 0x4d, 0x8f, 0xdb, 0x48,
	0x76, 0xa6, 0x28, 0x51, 0xd2, 0xeb, 0xaf, 0x72, 0xb9, 0x6d, 0xb7, 0xe5, 0x8f, 0x78, 0xb8, 0xc9,
	0xda, 0x63, 0x64, 0x7b, 0xc6, 0xea, 0x59, 0xcf, 0x64, 0x32, 0x08, 0xc2, 0x96, 0x48, 0x35, 0xb3,
	0x94, 0xc8, 0xa1, 0xa8, 0xf6, 0xf8, 0xc4, 0xd0, 0x22, 0xdd, 0x2d, 0x58, 0x5f, 0x91, 0xd8, 0xf6,
	0xf6, 0xe6, 0x92, 0x6c, 0x3e, 0xae, 0xf9, 0x5c, 0x20, 0x41, 0xf6, 0x9c, 0x4d, 0x10, 0x20, 0x48,
	0x80, 0xe4, 0x10, 0xe4, 0xbc, 0x8b, 0x00, 0x39, 0xe6, 0x94, 0x53, 0xf6, 0x94, 0x53, 0xfe, 0xc3,
	0x06, 0xaf, 0xaa, 0x28, 0x92, 0x92, 0xba, 0xdb, 0xce, 0x6e, 0xb0, 0x87, 0x86, 0xaa, 0x5e, 0xbd,
	0xf7, 0xea, 0xd5, 0xfb, 0xaa, 0xc7, 0x57, 0x0d, 0x5b, 0xaf, 0x06, 0x2f, 0xfb, 0xc1, 0x74, 0xb0,
	0x3f, 0x9d, 0x4d, 0xe2, 0x09, 0x2d, 0x8b, 0xa9, 0x7a, 0x0f, 0x4a, 0x47, 0xd1, 0x70, 0x38, 0xa1,
	0x37, 0xa0, 0x34, 0x8b, 0xfc, 0x41, 0xb8, 0x27, 0x3d, 0x94, 0x1e, 0x57, 0xdd, 0xe2, 0x2c, 0x32,
	0x43, 0xf5, 0x3b, 0x50, 0x69, 0x4e, 0xbb, 0x71, 0x10, 0x9f, 0xcd, 0xe9, 0xc7, 0xa0, 0xcc, 0xd9,
	0x88, 0x61, 0x6c, 0xd7, 0xf7, 0xf6, 0x13, 0x96, 0x09, 0xca, 0x3e, 0xff, 0x71, 0x05, 0x5e, 0xca,
	0xb2, 0x90, 0x61, 0xf9, 0x08, 0x14, 0xc1, 0xb0, 0x0c, 0x72, 0xc7, 0x76, 0xc8, 0x35, 0x5a, 0x85,
	0x92, 0xde, 0xf1, 0x74, 0x97, 0x48, 0x38, 0xb4, 0x74, 0xed, 0x58, 0x27, 0x05, 0x55, 0x07, 0xf0,
	0xce, 0xc6, 0xe3, 0x68, 0xe8, 0x9d, 0x4f, 0x23, 0xf5, 0x53, 0x28, 0xe2, 0x6f, 0x4a, 0x54, 0x81,
	0xa2, 0xe9, 0x98, 0x0e, 0x91, 0xf8, 0xe8, 0xf8, 0x19, 0x29, 0xe0, 0xa8, 0xe5, 0xea, 0x9f, 0x10,
	0x59, 0x8c, 0x9e, 0x91, 0xa2, 0xfa, 0x0a, 0xb6, 0x0f, 0x67, 0x83, 0xf0, 0x24, 0x3a, 0x1e, 0x06,
	0x63, 0x73, 0xfc, 0x6a, 0xa2, 0x7a, 0x50, 0x32, 0x86, 0xc1, 0x49, 0x46, 0x00, 0x00, 0xa5, 0xad,
	0x75, 0xb9, 0x04, 0x15, 0x28, 0x3a, 0xc7, 0x66, 0x93, 0x14, 0xe8, 0x26, 0x54, 0x7a, 0x1d, 0x4f,
	0x6b, 0xb5, 0xf4, 0x26, 0x29, 0xd2, 0x1d, 0xd8, 0x70, 0xb5, 0x4e, 0x4b, 0xf7, 0x0f, 0xf5, 0x96,
	0xd9, 0x21, 0x15, 0xba, 0x05, 0x55, 0x0e, 0xd0, 0x3b, 0x4d, 0x42, 0xd4, 0xbf, 0x93, 0x00, 0x9c,
	0xc9, 0x2c, 0x16, 0x87, 0xab, 0x2f, 0x69, 0xab, 0xb6, 0xd0, 0x56, 0x8a, 0xf4, 0x2e, 0xfa, 0xa2,
	0xb7, 0xa1, 0x3c, 0x9d, 0xcc, 0x62, 0x04, 0xcb, 0x0f, 0xa5, 0xc7, 0x5b, 0xae, 0x82, 0x53, 0x33,
	0xa4, 0xb7, 0x40, 0x19, 0xbc, 0x1a, 0x07, 0xa3, 0x68, 0xaf, 0xc8, 0xd0, 0xc5, 0x4c, 0xfd, 0xda,
	0xaa, 0x82, 0x15, 0x28, 0xf4, 0x84, 0xa6, 0x9a, 0xf6, 0xf3, 0x0e, 0x29, 0xa8, 0x01, 0x54, 0xac,
	0xc1, 0xf8, 0x35, 0x53, 0x6d, 0x4f, 0xa8, 0x16, 0x40, 0x69, 0xea, 0xc7, 0x66, 0x43, 0xe7, 0x26,
	0x31, 0x1d, 0xaf, 0xd7, 0x21, 0x12, 0x82, 0x0f, 0x5d, 0xb3, 0xd9, 0xd2, 0x49, 0x81, 0x12, 0xd8,
	0xe4, 0x63, 0xbf, 0x6b, 0xa1, 0x95, 0x98, 0xa2, 0x0f, 0xed, 0x0e, 0x2a, 0x68, 0x1b, 0x00, 0x47,
	0x62, 0xa5, 0xa4, 0xfe, 0xa0, 0xc0, 0x15, 0xd2, 0x98, 0x8c, 0x5f, 0x0d, 0x4e, 0xe8, 0x87, 0x20,
	0xf7, 0x47, 0xa1, 0xd0, 0xc6, 0xed, 0x9c, 0x36, 0x38, 0xc6, 0x7e, 0x63, 0x14, 0xba, 0x88, 0xb3,
	0x5e, 0x0f, 0xe9, 0x71, 0xe5, 0xec, 0x71, 0xb3, 0xfa, 0x29, 0xe6, 0xf4, 0x43, 0xa1, 0x38, 0x1c,
	0x8c, 0x5f, 0xef, 0x95, 0x38, 0x13, 0x1c, 0x23, 0x93, 0x51, 0x30, 0x8f, 0xa3, 0xd9, 0x9e, 0xc2,
	0x99, 0xf0, 0x19, 0x32, 0x09, 0xa7, 0x3e, 0x12, 0xee, 0x95, 0x39, 0x93, 0x70, 0x8a, 0x92, 0x65,
	0xcc, 0x58, 0x79, 0x57, 0x33, 0xaa, 0x1f, 0x81, 0xdc, 0x18, 0x85, 0xa9, 0xf6, 0xcb, 0x20, 0x6b,
	0xcd, 0x26, 0xd7, 0x64, 0xdb, 0x6e, 0x9a, 0xc6, 0x0b, 0x52, 0xe0, 0xca, 0xb6, 0x74, 0x4f, 0x27,
	0xb2, 0xfa, 0x5f, 0x25, 0x28, 0x1b, 0xc3, 0xc9, 0xdb, 0xf6, 0x24, 0xa4, 0x5f, 0xcf, 0xaa, 0x69,
	0x77, 0xb1, 0x9b, 0x58, 0x4e, 0x75, 0xf4, 0xcb, 0x50, 0x8a, 0x83, 0x97, 0xc3, 0x88, 0xe9, 0x68,
	0xbb, 0x7e, 0x6b, 0x05, 0xd3, 0xc3, 0x55, 0x97, 0x23, 0xa5, 0x1a, 0x95, 0x33, 0x1a, 0x7d, 0x04,
	0xc5, 0x37, 0xc3, 0x60, 0xcc, 0xd4, 0xb6, 0x51, 0xbf, 0xbe, 0xe0, 0x70, 0x6c, 0x69, 0x1d, 0xe4,
	0x72, 0x74, 0xcd, 0x65, 0x08, 0xf4, 0x33, 0xa8, 0xc4, 0xd1, 0x6c, 0xe4, 0x8f, 0x82, 0x3e, 0xd3,
	0xe6, 0x46, 0xfd, 0xee, 0x02, 0xd9, 0x8b, 0x66, 0xa3, 0xc1, 0x38, 0x88, 0x07, 0x93, 0x71, 0x3b,
	0xe8, 0x0b, 0xb2, 0x32, 0xa2, 0xb7, 0x83, 0x3e, 0xfd, 0x10, 0x4a, 0xa3, 0xe9, 0x70, 0xfe, 0x94,
	0xa9, 0x3b, 0xbb, 0x47, 0xdb, 0xb1, 0xba, 0x02, 0x99, 0x63, 0xd0, 0x4f, 0xa1, 0x7c, 0x36, 0x1e,
	0xf4, 0x83, 0x39, 0x37, 0x41, 0x76, 0x8f, 0x1e, 0x87, 0xbb, 0x93, 0xb3, 0x78, 0x30, 0x3e, 0x49,
	0xf6, 0x10, 0xd8, 0xf4, 0x00, 0x2a, 0x2f, 0x31, 0xc0, 0x07, 0xe3, 0x13, 0x66, 0xa4, 0x8d, 0xfa,
	0xcd, 0x05, 0xe5, 0xa1, 0x58, 0x10, 0x34, 0x0b, 0x44, 0xfa, 0x04, 0xe4, 0xa0, 0x3f, 0xdc, 0xab,
	0x32, 0xfc, 0x5b, 0x19, 0xa3, 0x0e, 0x07, 0xfd, 0x73, 0xad, 0x61, 0x09, 0x02, 0x44, 0x52, 0x7b,
	0xef, 0x62, 0xcf, 0xeb, 0xb0, 0xc5, 0xc7, 0x7e, 0xd7, 0x73, 0xcd, 0x86, 0x47, 0xe4, 0x8c, 0x89,
	0x8b, 0xb8, 0xcc, 0xc7, 0xc9, 0x72, 0x49, 0xfd, 0xb1, 0x04, 0x25, 0x66, 0x24, 0x8c, 0x2a, 0xb3,
	0xd3, 0x72, 0xf5, 0x6e, 0xd7, 0x77, 0x6c, 0xd7, 0xe3, 0xc9, 0x0d, 0xad, 0x40, 0x00, 0x93, 0x90,
	0xa7, 0xbb, 0x6d, 0xbf, 0xad, 0x35, 0xc8, 0x2e, 0xdd, 0x80, 0xb2, 0x75, 0xe0, 0x7b, 0x2f, 0x1c,
	0x9d, 0xdc, 0xc4, 0x18, 0x45, 0x35, 0x7e, 0x4c, 0x6e, 0x27, 0xc3, 0xa7, 0x64, 0x2f, 0x19, 0xd6,
	0xc9, 0x1d, 0xe4, 0x8b, 0x43, 0x3f, 0x21, 0xb9, 0x4b, 0x77, 0x81, 0x70, 0x88, 0x76, 0xa8, 0x5b,
	0xbe, 0xe7, 0xf6, 0xba, 0x1e, 0xb9, 0x87, 0x99, 0x8c, 0x41, 0x19, 0xd2, 0x7d, 0x7a, 0x03, 0x76,
	0x7a, 0x1d, 0xb3, 0xa1, 0x75, 0x3d, 0xdf, 0xb5, 0x7b, 0x9e, 0xd9, 0x69, 0x91, 0x07, 0xf4, 0x26,
	0x5c, 0x6f, 0xf7, 0x2c, 0x2f, 0x0f, 0x7e, 0x8c, 0xe2, 0xb1, 0x84, 0x80, 0xb3, 0x3a, 0xa6, 0x00,
	0xc7, 0xb6, 0xcc, 0xc6, 0x0b, 0x5f, 0x6b, 0x58, 0xe4, 0x8b, 0xc3, 0x32, 0x94, 0xa2, 0x71, 0x3c,
	0x3b, 0x57, 0xff, 0x49, 0x81, 0x4a, 0x6b, 0x36, 0x39, 0x9b, 0xa2, 0x8b, 0x3f, 0xca, 0xba, 0x78,
	0x6a, 0xab, 0x64, 0x3d, 0xf5, 0xf1, 0x7d, 0x50, 0x4e, 0xfc, 0xf8, 0x7c, 0x9a, 0x38, 0xf9, 0xed,
	0x55, 0xdc, 0x16, 0x66, 0x2e, 0xb7, 0x74, 0xc2, 0x12, 0xd8, 0x5a, 0x2f, 0x7f, 0x06, 0x95, 0x61,
	0xdd, 0x1f, 0xbc, 0x0a, 0xfa, 0x91, 0xf0, 0xf4, 0x3b, 0x0b, 0x36, 0x56, 0xdd, 0x1c, 0xc7, 0xd1,
	0x0c, 0xd7, 0x18, 0x47, 0x74, 0xab, 0x61, 0xdd, 0xc4, 0x39, 0xfd, 0x0c, 0x60, 0x78, 0xe0, 0x27,
	0x2e, 0xc9, 0xdd, 0x3e, 0x15, 0xc0, 0x3a, 0x10, 0x4e, 0x99, 0xd0, 0x55, 0x87, 0x09, 0x84, 0x7e,
	0x01, 0x80, 0x2e, 0x2d, 0xf6, 0x54, 0x96, 0x9c, 0x19, 0x35, 0xbd, 0xb2, 0x6b, 0x15, 0x09, 0x16,
	0xfb, 0x32, 0xea, 0x61, 0xf0, 0x32, 0x1a, 0x8a, 0x50, 0xb8, 0x9d, 0xa3, 0xb6, 0x70, 0x25, 0x47,
	0xc9, 0x20, 0xef, 0x9f, 0x77, 0xbe, 0x27, 0x43, 0xa9, 0x95, 0xa4, 0xfe, 0x5e, 0xa7, 0xeb, 0xe8,
	0x0d, 0x72, 0x0d, 0xbd, 0xc6, 0xaa, 0xfb, 0x26, 0x5e, 0xc8, 0x86, 0xd6, 0xd0, 0x89, 0x84, 0x66,
	0xb5, 0xea, 0xbe, 0xab, 0x3f, 0x77, 0x4d, 0x4f, 0x27, 0x84, 0xcd, 0x0f, 0x7c, 0xe1, 0x23, 0xe4,
	0xa1, 0xa0, 0x58, 0xb8, 0x07, 0xf9, 0x18, 0xdd, 0xc2, 0xaa, 0xfb, 0x86, 0x65, 0xdb, 0x4d, 0xf2,
	0xeb, 0x6c, 0xfd, 0x20, 0xc3, 0xd1, 0x11, 0x90, 0x94, 0xe2, 0x37, 0x85, 0x67, 0xeb, 0x8d, 0xb6,
	0x43, 0xa6, 0xf4, 0x26, 0x10, 0xab, 0xee, 0xdb, 0xc7, 0xba, 0x6b, 0x69, 0x2f, 0x7c, 0xc3, 0xf2,
	0x7b, 0x0d, 0xf2, 0x3b, 0xd2, 0x2a, 0xb8, 0xdd, 0x20, 0xbf, 0xbb, 0x0c, 0x6e, 0x37, 0x10, 0xfb,
	0xbb, 0x6b, 0xc0, 0xed, 0x06, 0xf9, 0x3d, 0x89, 0xde, 0x80, 0x6d, 0xe6, 0xec, 0xa9, 0x38, 0x7f,
	0x2c, 0x51, 0x02, 0x1b, 0x3c, 0x2e, 0xea, 0xfe, 0xb1, 0xd3, 0x21, 0x7f, 0x92, 0x81, 0x1c, 0x30,
	0xc8, 0x9f, 0x4a, 0xf4, 0xba, 0x88, 0x26, 0xaf, 0xd7, 0xe9, 0xe8, 0xd6, 0x53, 0xf2, 0x67, 0xcb,
	0xa0, 0x3a, 0xf9, 0x73, 0xd4, 0x15, 0x8f, 0xa5, 0xee, 0x73, 0xcd, 0x21, 0xdf, 0x93, 0xe8, 0x26,
	0x94, 0xd9, 0xdc, 0x30, 0xc8, 0x5f, 0xa7, 0xab, 0xec, 0x9c, 0x7f, 0x23, 0xd1, 0x5d, 0xd8, 0xb1,
	0xea, 0x7e, 0xcf, 0xc8, 0x48, 0xf3, 0x0f, 0x52, 0x1a, 0x36, 0x3f, 0x96, 0xa1, 0x92, 0x64, 0x63,
	0xfa, 0x0d, 0x28, 0x8d, 0x82, 0xb8, 0x7f, 0xca, 0x02, 0x27, 0xeb, 0x13, 0x09, 0xc6, 0x7e, 0x1b,
	0x97, 0x5d, 0x8e, 0x45, 0xeb, 0x50, 0x0e, 0xfa, 0x98, 0x96, 0xe7, 0x7b, 0x85, 0x87, 0xf2, 0xe3,
	0x8d, 0x4c, 0xbd, 0xb6, 0x20, 0xd0, 0x18, 0x82, 0x9b, 0x20, 0xd2, 0xfb, 0x00, 0x27, 0x93, 0x78,
	0xe2, 0xf3, 0x9b, 0x85, 0x97, 0x1b, 0x55, 0x84, 0xb0, 0x3c, 0x55, 0x6b, 0x43, 0x89, 0x6d, 0x81,
	0xd7, 0xe5, 0x60, 0xcc, 0xaf, 0x4b, 0x89, 0x5f, 0x97, 0x83, 0x31, 0xbb, 0x2e, 0x09, 0xc8, 0x6f,
	0xc4, 0xbd, 0xbd, 0xe5, 0xe2, 0x90, 0xde, 0x81, 0xca, 0x9b, 0x41, 0xe8, 0x8f, 0x82, 0xf9, 0x6b,
	0xc1, 0xb0, 0xfc, 0x66, 0x10, 0xb6, 0x83, 0xf9, 0xeb, 0xda, 0x77, 0x0b, 0xa0, 0x70, 0x09, 0xe8,
	0x53, 0x28, 0xb2, 0xab, 0x9d, 0xe7, 0x84, 0xfb, 0x17, 0x49, 0xba, 0xdf, 0x09, 0x46, 0x91, 0xcb,
	0x50, 0xe9, 0x2e, 0x94, 0xde, 0x04, 0xc3, 0xb3, 0x48, 0x6c, 0xc6, 0x27, 0xea, 0xdf, 0x4b, 0x50,
	0x44, 0xa4, 0x65, 0x8f, 0xee, 0xea, 0x9e, 0x8f, 0xcc, 0x7c, 0x2c, 0xed, 0x24, 0xf4, 0x36, 0x06,
	0x71, 0x0d, 0x5e, 0xe7, 0xe1, 0xc4, 0xc6, 0x25, 0x19, 0x33, 0x35, 0xce, 0xd2, 0x84, 0x58, 0xc4,
	0xfc, 0xe8, 0xf4, 0xba, 0x47, 0x8c, 0x01, 0x29, 0x21, 0xbe, 0x63, 0x3b, 0x7c, 0xa6, 0x60, 0x4a,
	0x5d, 0xe0, 0x5b, 0x75, 0x4e, 0x52, 0x4e, 0xb8, 0x70, 0xc7, 0xf0, 0xcd, 0x26, 0xa9, 0x24, 0x88,
	0x4c, 0x8a, 0x04, 0xb1, 0xaa, 0xfe, 0x85, 0x0c, 0x74, 0xf5, 0x0e, 0xa5, 0x9f, 0xe6, 0x8d, 0xfd,
	0xc1, 0x25, 0xf7, 0x6d, 0xde, 0xec, 0x5f, 0x2c, 0x9b, 0x5d, 0xbd, 0x8c, 0xf4, 0x3d, 0x1d, 0x60,
	0x72, 0xa5, 0x03, 0xdc, 0x81, 0x4a, 0x14, 0x9f, 0xa6, 0x49, 0x7b, 0xcb, 0x2d, 0x47, 0xf1, 0x29,
	0xcb, 0x31, 0xb7, 0x01, 0x87, 0x7e, 0x38, 0x8f, 0x93, 0x0a, 0x2e, 0x8a, 0x4f, 0x9b, 0x73, 0x46,
	0x83, 0x65, 0x86, 0xff, 0x66, 0x51, 0xc2, 0x95, 0x71, 0x7e, 0x3c, 0x08, 0x6b, 0xbf, 0xbd, 0xf0,
	0x90, 0x5f, 0xcd, 0x79, 0xc8, 0xa3, 0xab, 0x0f, 0x75, 0xb5, 0xaf, 0x3c, 0x58, 0xe3, 0x2a, 0x00,
	0x8a, 0xdd, 0xf3, 0x9c, 0x9e, 0x47, 0x24, 0xf5, 0xfb, 0x25, 0xa8, 0x24, 0x75, 0xca, 0xc5, 0xd1,
	0x97, 0x60, 0xbc, 0x73, 0xf4, 0x2d, 0x08, 0x96, 0x95, 0x9f, 0x5e, 0x77, 0xf2, 0x3b, 0x5d, 0x77,
	0xd7, 0xa1, 0x78, 0x92, 0x96, 0xbd, 0xf2, 0x89, 0x19, 0x2e, 0xd9, 0xaf, 0xb4, 0x6c, 0xbf, 0x8f,
	0x12, 0xfb, 0x11, 0x90, 0x5f, 0x4e, 0xf8, 0xa7, 0x49, 0xc5, 0xc5, 0x21, 0xaa, 0x88, 0xdf, 0x38,
	0x42, 0x45, 0x6c, 0x52, 0xfb, 0x4b, 0xf9, 0xca, 0x10, 0x5d, 0x3a, 0xce, 0xd5, 0x6a, 0xff, 0x61,
	0x61, 0x8d, 0xde, 0x31, 0xc4, 0x6c, 0x87, 0xd7, 0x25, 0x3c, 0x3e, 0x9b, 0x7a, 0xc3, 0xf7, 0x3c,
	0x8b, 0x14, 0xf0, 0xcb, 0xab, 0x61, 0x3b, 0x2f, 0x70, 0xe6, 0x9b, 0x1d, 0x22, 0xe3, 0xfd, 0xc3,
	0x01, 0x0d, 0x9c, 0x17, 0xb3, 0xd1, 0x5c, 0x5a, 0x8e, 0x47, 0x56, 0x50, 0x29, 0xab, 0x51, 0xbd,
	0x36, 0x44, 0x05, 0xe8, 0x4b, 0x1b, 0xaf, 0x87, 0xa6, 0xfe, 0x15, 0xa9, 0x62, 0xdd, 0xc3, 0xb0,
	0x5c, 0xcd, 0x30, 0xcc, 0x86, 0xdf, 0xb0, 0xb4, 0x6e, 0x97, 0x00, 0xa5, 0xb0, 0x8d, 0x60, 0x76,
	0xad, 0xf1, 0x3d, 0x36, 0x16, 0x62, 0x19, 0xa6, 0x6e, 0x35, 0xc9, 0x26, 0x72, 0xc3, 0x33, 0x35,
	0x9e, 0xfb, 0xb6, 0xeb, 0x6b, 0x8d, 0x23, 0xb2, 0x95, 0x4b, 0x1d, 0xdb, 0x09, 0x82, 0x55, 0xf7,
	0x8f, 0x74, 0xad, 0xa9, 0xbb, 0x64, 0x07, 0xcf, 0xca, 0xf8, 0xb6, 0x75, 0x07, 0x45, 0x22, 0x74,
	0x0f, 0x76, 0x11, 0xe0, 0xb8, 0xb6, 0xa7, 0x37, 0x3c, 0xd3, 0xee, 0x08, 0xc9, 0xae, 0xab, 0xbf,
	0x5f, 0x04, 0xba, 0x5a, 0x19, 0x5f, 0x9c, 0x39, 0x56, 0x71, 0xf3, 0x2e, 0xfb, 0x39, 0x28, 0xdc,
	0x13, 0x99, 0xb9, 0xb2, 0x89, 0x63, 0x0d, 0xa5, 0xf0, 0x5d, 0x41, 0xf1, 0x33, 0x70, 0xdd, 0xda,
	0x30, 0xf1, 0xcd, 0x9b, 0xa0, 0x0c, 0xa6, 0x2c, 0x4d, 0xf0, 0x4e, 0x44, 0x69, 0x30, 0xc5, 0x2c,
	0x81, 0x57, 0xcb, 0xec, 0xd5, 0xe2, 0x6a, 0x99, 0xbd, 0x42, 0x81, 0x27, 0xb3, 0xc1, 0xc9, 0x60,
	0x2c, 0x36, 0xbd, 0x54, 0x60, 0x9b, 0x61, 0xba, 0x82, 0xa2, 0xf6, 0x57, 0xd2, 0x95, 0x99, 0xe5,
	0xc2, 0x53, 0x5f, 0xed, 0xe2, 0xbf, 0x76, 0x79, 0x66, 0x41, 0xc3, 0x37, 0x2c, 0x5d, 0x43, 0xaf,
	0x40, 0x93, 0x76, 0x49, 0x21, 0xeb, 0xf1, 0xb2, 0xfa, 0x04, 0x14, 0x2e, 0x6f, 0x8e, 0x43, 0x15,
	0x4a, 0x1d, 0xdd, 0x6c, 0x1d, 0xf1, 0x36, 0x09, 0xd6, 0xe0, 0x3a, 0x29, 0xa8, 0xff, 0x56, 0x80,
	0xcd, 0xec, 0x67, 0x0e, 0x7d, 0x9a, 0x77, 0x80, 0xbb, 0x6b, 0x3f, 0x86, 0xf2, 0xa6, 0xff, 0x64,
	0xc9, 0xf4, 0xf7, 0xd6, 0xd3, 0xe4, 0x8d, 0x5e, 0xfb, 0x2a, 0x73, 0x1b, 0x24, 0x99, 0x5d, 0xba,
	0x30, 0xb3, 0x17, 0x72, 0x99, 0x9d, 0xde, 0x85, 0x6a, 0xcc, 0xba, 0x3b, 0x69, 0x63, 0xa3, 0xc2,
	0x01, 0x66, 0x58, 0x3b, 0x5b, 0x18, 0xe7, 0x9b, 0x39, 0xe3, 0x7c, 0x70, 0x99, 0x5c, 0x3f, 0x7d,
	0xc2, 0xff, 0x57, 0x19, 0xb6, 0x72, 0x5f, 0x80, 0xb4, 0x9e, 0xd7, 0xe5, 0xbd, 0xf5, 0x1f, 0x8a,
	0x79, 0x65, 0x7e, 0x73, 0x49, 0x99, 0xf7, 0x2f, 0x20, 0x5a, 0xd2, 0xe6, 0x8f, 0xa4, 0xf7, 0x0e,
	0x80, 0xec, 0x65, 0x2b, 0xe7, 0x2f, 0xdb, 0x3b, 0x50, 0x19, 0x4c, 0x7d, 0xd6, 0xeb, 0x4b, 0xee,
	0xd4, 0xc1, 0xd4, 0x61, 0xad, 0xbf, 0x9b, 0xa0, 0xc4, 0x53, 0x7f, 0x3e, 0xeb, 0x8b, 0xfb, 0xa1,
	0x14, 0x4f, 0xbb, 0xb3, 0xbe, 0x00, 0xe3, 0xae, 0x4a, 0x02, 0xc6, 0x5d, 0x33, 0xb6, 0x2d, 0xe7,
	0x6c, 0x9b, 0x29, 0x01, 0x2a, 0xd9, 0x12, 0xa0, 0xf6, 0x66, 0x61, 0xbc, 0x67, 0x39, 0xe3, 0xa9,
	0x97, 0xea, 0xe1, 0xa7, 0xb7, 0xde, 0x8f, 0x24, 0x2c, 0xf8, 0xf3, 0x9f, 0x56, 0xd9, 0xee, 0x90,
	0x94, 0xeb, 0x0e, 0x5d, 0xe2, 0x9a, 0x1f, 0x02, 0x61, 0x4b, 0xf1, 0x2c, 0x18, 0xcf, 0x87, 0xac,
	0xb4, 0x60, 0xea, 0xad, 0xb8, 0x3b, 0x08, 0xf7, 0x52, 0x30, 0xb2, 0x3f, 0x7d, 0xeb, 0x07, 0x61,
	0x38, 0x4b, 0x9a, 0x70, 0xa7, 0x6f, 0xb5, 0x30, 0x9c, 0xa1, 0xb1, 0x46, 0xf1, 0x99, 0xd0, 0x30,
	0x0e, 0x13, 0xf3, 0x29, 0xa9, 0xf9, 0xd2, 0x66, 0x94, 0xe8, 0x39, 0xf1, 0x99, 0xfa, 0xfd, 0x02,
	0x6c, 0xe7, 0xbf, 0x2f, 0xf1, 0xcb, 0x76, 0x1c, 0xa5, 0x87, 0x28, 0x8e, 0x97, 0x3a, 0x83, 0x85,
	0x0b, 0xcf, 0x26, 0xe7, 0xcf, 0x96, 0x31, 0x67, 0x71, 0xd9, 0x9c, 0xb8, 0x90, 0xb8, 0x05, 0x5f,
	0x40, 0xbf, 0x78, 0x00, 0x1b, 0xd3, 0xd3, 0x73, 0x3f, 0xd9, 0x89, 0xcb, 0x5f, 0x9d, 0x9e, 0x9e,
	0x3b, 0x7c, 0xb3, 0x03, 0xc0, 0xb8, 0xe5, 0x4e, 0x58, 0x5e, 0x6a, 0x0c, 0xa7, 0xfd, 0xdb, 0x7d,
	0x96, 0xfd, 0xcb, 0xf1, 0xd9, 0x98, 0xb9, 0xe7, 0x7d, 0x00, 0x24, 0x9a, 0x45, 0xa3, 0x49, 0x1c,
	0x31, 0xff, 0xa9, 0xba, 0x98, 0x0f, 0x5c, 0x06, 0x10, 0xc9, 0xc1, 0x1f, 0x4e, 0xfa, 0x01, 0xef,
	0xd1, 0x54, 0x59, 0x72, 0xb0, 0x70, 0xae, 0xfe, 0x91, 0x04, 0x74, 0xf5, 0x23, 0xfa, 0xe7, 0xa8,
	0x22, 0xf5, 0x07, 0x12, 0xff, 0xa6, 0x4c, 0x3f, 0xcc, 0x31, 0x9a, 0xc2, 0x79, 0xc6, 0xed, 0x4a,
	0xe1, 0x1c, 0xb7, 0xbd, 0x0b, 0xd5, 0x71, 0xf4, 0xd6, 0xcf, 0x56, 0x5a, 0x95, 0x71, 0xf4, 0x96,
	0x11, 0xa6, 0x27, 0x90, 0x33, 0x27, 0xb8, 0x07, 0x80, 0x14, 0x82, 0x59, 0x71, 0x41, 0xd2, 0x64,
	0xfc, 0xd2, 0x7b, 0xb7, 0xf4, 0x2e, 0xf7, 0xae, 0xfa, 0x1d, 0x28, 0x1b, 0xc6, 0xa2, 0xdf, 0x1f,
	0x4e, 0x13, 0x01, 0x8b, 0x6e, 0x31, 0x9c, 0x9a, 0x21, 0xfd, 0x98, 0xf5, 0x41, 0xd7, 0xb6, 0x5c,
	0x04, 0xdd, 0x7e, 0x73, 0xca, 0x18, 0x2a, 0x21, 0xfb, 0x55, 0x1f, 0x83, 0xc2, 0x21, 0x69, 0xdf,
	0x61, 0x03, 0xca, 0xb6, 0xa3, 0x77, 0x3a, 0x5d, 0x8b, 0xb7, 0x9c, 0x0d, 0xe3, 0xb8, 0x4b, 0x0a,
	0xea, 0xff, 0x48, 0xa0, 0x18, 0x06, 0xfb, 0x4a, 0x48, 0xcc, 0x32, 0x9e, 0x64, 0xa3, 0xb2, 0x33,
	0xc9, 0xc6, 0x53, 0x21, 0x17, 0x4f, 0x54, 0xa4, 0x12, 0xd1, 0xd9, 0x61, 0x69, 0xe2, 0x16, 0x28,
	0x7d, 0xd6, 0x39, 0x4e, 0x1a, 0xbf, 0x7c, 0x86, 0xe9, 0x63, 0x1e, 0x07, 0x71, 0x52, 0xff, 0xf2,
	0x09, 0x72, 0xe8, 0x9f, 0xcd, 0x66, 0xc2, 0x81, 0xd9, 0x98, 0x3e, 0x00, 0x08, 0xc2, 0x37, 0xd1,
	0x2c, 0x1e, 0xcc, 0xa3, 0x50, 0x44, 0x61, 0x06, 0x82, 0x6e, 0x8a, 0x78, 0xfe, 0x7c, 0x1a, 0x45,
	0xa1, 0x48, 0x73, 0x55, 0x84, 0x74, 0x11, 0x80, 0xd6, 0x1c, 0x05, 0xdf, 0x16, 0xab, 0x55, 0x6e,
	0x9a, 0x51, 0xf0, 0x6d, 0xb6, 0x88, 0x65, 0xee, 0x06, 0x3f, 0x6e, 0x37, 0x0e, 0xe2, 0xf9, 0xc5,
	0x67, 0xfe, 0x0c, 0x14, 0x96, 0xe0, 0x92, 0x2f, 0x85, 0x87, 0x19, 0x95, 0x2f, 0xc8, 0xf7, 0x8f,
	0x19, 0x8a, 0x3e, 0x8e, 0x67, 0xe7, 0xae, 0xc0, 0xa7, 0x5f, 0x40, 0x65, 0xee, 0x0b, 0x5a, 0x99,
	0xd1, 0x7e, 0xb0, 0x96, 0xb6, 0x9b, 0x25, 0x2e, 0xcf, 0xf9, 0xac, 0xf6, 0x2b, 0xb0, 0x91, 0x81,
	0x63, 0x7e, 0x7a, 0x1d, 0x9d, 0x8b, 0x2b, 0x07, 0x87, 0xf9, 0x34, 0x5c, 0x14, 0x69, 0xf8, 0xf3,
	0xc2, 0x67, 0x52, 0xed, 0x73, 0xd8, 0xec, 0xbe, 0x07, 0x6d, 0x35, 0x43, 0xab, 0xee, 0x2f, 0xba,
	0x54, 0x2d, 0xdd, 0xe3, 0x55, 0x4d, 0xd7, 0xd3, 0x5c, 0x8f, 0xfb, 0x4a, 0xd7, 0xb3, 0x1d, 0x52,
	0x60, 0xf5, 0x8d, 0xde, 0xd5, 0x3d, 0x22, 0xab, 0xff, 0x2d, 0x83, 0x6c, 0x6b, 0xed, 0xda, 0x2d,
	0xd8, 0xd5, 0xce, 0xc2, 0x01, 0xab, 0xc7, 0xa2, 0xc6, 0x38, 0x76, 0xa3, 0xdf, 0x3a, 0x8b, 0xe6,
	0x71, 0xed, 0x09, 0xd0, 0x25, 0xf8, 0x74, 0xc8, 0xf6, 0xef, 0x4f, 0xce, 0xc6, 0xb1, 0xf0, 0x6e,
	0x3e, 0xa9, 0xfd, 0x8b, 0x04, 0x65, 0x41, 0xb7, 0xde, 0xff, 0xd7, 0xbe, 0x3c, 0x7c, 0x04, 0x95,
	0x49, 0x30, 0xca, 0x96, 0xb7, 0x69, 0x5f, 0xde, 0xd6, 0xda, 0xf8, 0xc7, 0xb3, 0xdb, 0x24, 0x18,
	0xb1, 0x48, 0xf8, 0x16, 0xec, 0x04, 0x28, 0x92, 0x3f, 0x43, 0x99, 0xfc, 0xfe, 0x38, 0x16, 0x9d,
	0xc7, 0x0f, 0x72, 0x74, 0xeb, 0x8e, 0x73, 0x74, 0xcd, 0xdd, 0x0a, 0xb2, 0xf0, 0x43, 0x05, 0x8a,
	0x2f, 0x27, 0xe1, 0x79, 0xed, 0x9f, 0x25, 0x28, 0xf1, 0xb3, 0xfd, 0x3f, 0x4a, 0x6e, 0x5e, 0x24,
	0xf9, 0x2f, 0x5c, 0x26, 0xf9, 0x74, 0x78, 0x7e, 0xa1, 0xdc, 0xea, 0x23, 0x28, 0x8b, 0x6d, 0xd2,
	0x0c, 0x71, 0x03, 0x76, 0xb4, 0x5e, 0xd3, 0xe4, 0x8d, 0x64, 0xdd, 0x6f, 0x74, 0xf0, 0xfe, 0xfe,
	0xc7, 0x32, 0x06, 0x4c, 0xfb, 0x6c, 0x18, 0x0f, 0xa6, 0xc1, 0x2c, 0xae, 0x9d, 0xc2, 0x06, 0xba,
	0x70, 0x62, 0xaf, 0x0b, 0xe3, 0x67, 0x17, 0x4a, 0x98, 0x0e, 0x78, 0xf8, 0x54, 0x5d, 0x3e, 0xa1,
	0x4f, 0x78, 0x93, 0x59, 0x5e, 0xba, 0x91, 0xb2, 0x61, 0x91, 0xf4, 0x99, 0x6b, 0x9f, 0x42, 0x95,
	0xef, 0x84, 0xda, 0x7d, 0xc2, 0xb3, 0x07, 0x7e, 0x1c, 0x63, 0x44, 0xed, 0xae, 0x23, 0xe5, 0x39,
	0x65, 0x5e, 0xfb, 0x06, 0xec, 0x20, 0xac, 0x19, 0xcd, 0xfb, 0x89, 0x98, 0x35, 0xa8, 0x0c, 0xf0,
	0x62, 0x1a, 0x07, 0x43, 0xf1, 0x79, 0xbd, 0x98, 0xd7, 0x1c, 0x2c, 0x2f, 0x13, 0x74, 0xdc, 0xeb,
	0x12, 0x64, 0xfa, 0x35, 0x28, 0xb2, 0xe2, 0x8a, 0x27, 0x85, 0x9d, 0x25, 0x31, 0x5c, 0xb6, 0x58,
	0xfb, 0xcf, 0xab, 0x1c, 0xfa, 0x13, 0x28, 0x8f, 0x72, 0x09, 0xfd, 0x6e, 0x86, 0xd1, 0x42, 0xd7,
	0xfb, 0x6d, 0x91, 0xd4, 0x47, 0x3c, 0x95, 0x3f, 0x13, 0x7b, 0xcb, 0xcc, 0xf6, 0x0f, 0xd7, 0x92,
	0x64, 0x6c, 0x73, 0x74, 0x8d, 0x8b, 0x43, 0x1b, 0x50, 0x65, 0x36, 0x0a, 0xa3, 0x79, 0x5f, 0x38,
	0xce, 0x2f, 0x5e, 0x48, 0x9c, 0xd1, 0xda, 0xd1, 0x35, 0xb7, 0x32, 0x15, 0xa0, 0x85, 0xc3, 0xff,
	0xc7, 0xe5, 0x0e, 0xff, 0x7f, 0x3b, 0xd9, 0x27, 0xb9, 0x93, 0x3d, 0xb8, 0xe4, 0x64, 0xdc, 0xa9,
	0xf9, 0xb9, 0xb4, 0xd5, 0x73, 0xa9, 0x57, 0x9c, 0x8b, 0x93, 0xaf, 0x9c, 0x4a, 0xfd, 0x77, 0x09,
	0x94, 0xf6, 0x74, 0xe5, 0x29, 0xdb, 0xb0, 0xec, 0xe7, 0x44, 0xa2, 0x5b, 0x50, 0xd5, 0x5a, 0x2d,
	0x57, 0x6f, 0x69, 0xf8, 0x6d, 0x87, 0x69, 0xd0, 0xd3, 0x0e, 0x2d, 0xf1, 0xce, 0xca, 0xda, 0x0c,
	0x45, 0x04, 0x7e, 0xd9, 0xd3, 0x7b, 0x3a, 0x29, 0xe1, 0xb0, 0xe5, 0xda, 0x3d, 0x87, 0x28, 0x74,
	0x1b, 0x80, 0x0d, 0xfd, 0xa6, 0xde, 0x6d, 0x90, 0x32, 0x7b, 0x06, 0xd2, 0x3d, 0xdd, 0x25, 0x55,
	0xf6, 0x0c, 0x84, 0x43, 0xbf, 0x61, 0x77, 0x0c, 0xb3, 0x45, 0x80, 0x3d, 0x56, 0x31, 0x88, 0xa1,
	0x6b, 0x5e, 0xcf, 0xd5, 0xc9, 0x06, 0x82, 0xd8, 0x56, 0x0b, 0xd0, 0x26, 0xef, 0xc9, 0xb8, 0x1e,
	0xe7, 0xb8, 0x45, 0x29, 0x6c, 0xea, 0x5f, 0x39, 0xba, 0x6b, 0xb6, 0xf9, 0x63, 0xfd, 0x4f, 0x7e,
	0x22, 0xab, 0x1d, 0x00, 0xc3, 0x70, 0x82, 0xfe, 0xeb, 0x28, 0x36, 0xc7, 0xeb, 0xed, 0x94, 0x89,
	0xdb, 0x42, 0x2e, 0x6e, 0x29, 0x14, 0xc3, 0x20, 0x0e, 0x98, 0x29, 0x36, 0x5d, 0x36, 0x56, 0x6d,
	0x76, 0x67, 0x32, 0x7e, 0xf6, 0x59, 0xfc, 0x33, 0x60, 0x18, 0x41, 0x25, 0x61, 0xf8, 0x9e, 0xdc,
	0xd6, 0x3e, 0x26, 0x5d, 0xf4, 0xe6, 0xfe, 0xb7, 0x12, 0x6c, 0xa6, 0xf9, 0x81, 0x3f, 0xe5, 0xaf,
	0xee, 0x95, 0x86, 0xb4, 0x74, 0x61, 0x48, 0xe3, 0xb7, 0xf8, 0x2c, 0x0a, 0xe6, 0x93, 0xa4, 0xab,
	0x71, 0x6f, 0x4d, 0x02, 0x3a, 0x9b, 0xef, 0xbb, 0x0c, 0xc7, 0x15, 0xb8, 0xea, 0x87, 0xa0, 0x70,
	0x48, 0xf2, 0xea, 0x73, 0x2d, 0xf3, 0xd2, 0x93, 0x7b, 0x01, 0x52, 0xff, 0x50, 0x82, 0x2a, 0x67,
	0xd5, 0x9e, 0x84, 0xef, 0xa9, 0x94, 0x4c, 0x7d, 0x26, 0xe7, 0xea, 0xb3, 0xf4, 0x9d, 0xbc, 0xf8,
	0xce, 0xef, 0xe4, 0x16, 0x6c, 0x1b, 0x86, 0x55, 0x47, 0xfa, 0xcb, 0xb4, 0xf6, 0x4b, 0x50, 0xc2,
	0x0d, 0xe7, 0x2b, 0x99, 0x90, 0x93, 0xba, 0x7c, 0x55, 0xfd, 0x0d, 0xd8, 0x5c, 0xe6, 0xb5, 0xf2,
	0xff, 0x2c, 0xef, 0xca, 0xeb, 0x87, 0x12, 0x28, 0x1c, 0x92, 0x3d, 0xb1, 0x94, 0x3b, 0xf1, 0x25,
	0x1f, 0x90, 0xef, 0xfb, 0x2f, 0x1b, 0x58, 0xc6, 0x0b, 0x9b, 0x97, 0x96, 0x5e, 0xf3, 0xb9, 0x14,
	0xcb, 0xd6, 0xfe, 0x7a, 0xd6, 0xda, 0xab, 0x8f, 0x7d, 0xc2, 0xec, 0x85, 0x27, 0x7f, 0x20, 0x83,
	0x6c, 0x18, 0xed, 0xe5, 0x2e, 0xd2, 0x91, 0x6e, 0x59, 0x36, 0x91, 0xe8, 0x0e, 0x6c, 0xb0, 0x00,
	0xef, 0x7a, 0x9a, 0xd7, 0xeb, 0xf2, 0x4e, 0x2b, 0x03, 0x88, 0x44, 0x21, 0xd3, 0x4d, 0xa8, 0x60,
	0x66, 0xf2, 0xdb, 0x76, 0x93, 0xbf, 0x83, 0xf0, 0x1c, 0x83, 0xd3, 0x12, 0x4e, 0x9b, 0x4e, 0x42,
	0xac, 0x30, 0x5c, 0xc3, 0xe7, 0xbc, 0xcb, 0x74, 0x0f, 0x76, 0x0d, 0x83, 0xbf, 0xf0, 0x39, 0x9a,
	0xeb, 0xf9, 0xae, 0xfe, 0x65, 0x4f, 0xef, 0x7a, 0xa4, 0x42, 0x6f, 0x01, 0x5d, 0x5a, 0x71, 0xac,
	0x17, 0x3c, 0x4d, 0x19, 0x86, 0xef, 0x68, 0x8d, 0x6f, 0xe9, 0x9e, 0x6f, 0x76, 0x78, 0x9a, 0x4a,
	0x21, 0x76, 0xcf, 0x23, 0x1b, 0x94, 0xa2, 0xcf, 0xf8, 0x59, 0xa9, 0x37, 0x51, 0xea, 0x04, 0x86,
	0x82, 0x6d, 0x21, 0x9d, 0x55, 0xd7, 0x9a, 0x4d, 0x37, 0xc1, 0xd9, 0xa6, 0xbb, 0x40, 0x0c, 0xc3,
	0xcf, 0x43, 0x77, 0x70, 0x4b, 0x0d, 0x4f, 0xd3, 0x11, 0x42, 0x5c, 0x47, 0xc8, 0x71, 0x7b, 0x01,
	0xf1, 0x08, 0x45, 0x48, 0x33, 0x8b, 0x73, 0x83, 0xe1, 0x74, 0x33, 0x90, 0x5d, 0x94, 0xc0, 0xd6,
	0xda, 0x8b, 0x33, 0xde, 0x44, 0xd5, 0x70, 0x00, 0xae, 0xdf, 0x7a, 0xa9, 0xb0, 0x46, 0xcc, 0xc1,
	0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x72, 0x6f, 0x35, 0x6f, 0x85, 0x25, 0x00, 0x00,
}
