flow

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2016 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Overview

Package flow is a generated protocol buffer package.

It is generated from these files:

flow/flow.proto
flow/set.proto
flow/request.proto

It has these top-level messages:

FlowEndpointStatistics
FlowEndpointsStatistics
FlowStatistics
FlowMetricRange
Flow
FlowSet
TermStringFilter
TermInt64Filter
NeStringFilter
NeInt64Filter
GtInt64Filter
LtInt64Filter
GteInt64Filter
LteInt64Filter
Filter
BoolFilter
Range
FlowSearchQuery
FlowSearchReply

Index

Constants

View Source
const (
	Namespace = "Flow"
)

Variables

View Source
var BoolFilterOp_name = map[int32]string{
	0: "OR",
	1: "AND",
	2: "NOT",
}
View Source
var BoolFilterOp_value = map[string]int32{
	"OR":  0,
	"AND": 1,
	"NOT": 2,
}
View Source
var FlowEndpointLayer_name = map[int32]string{
	0: "LINK",
	1: "NETWORK",
	2: "TRANSPORT",
}
View Source
var FlowEndpointLayer_value = map[string]int32{
	"LINK":      0,
	"NETWORK":   1,
	"TRANSPORT": 2,
}
View Source
var FlowEndpointType_name = map[int32]string{
	0: "ETHERNET",
	1: "IPV4",
	2: "TCPPORT",
	3: "UDPPORT",
	4: "SCTPPORT",
	5: "IPV6",
}
View Source
var FlowEndpointType_value = map[string]int32{
	"ETHERNET": 0,
	"IPV4":     1,
	"TCPPORT":  2,
	"UDPPORT":  3,
	"SCTPPORT": 4,
	"IPV6":     5,
}

Functions

func GetAttribute added in v0.5.0

func GetAttribute(intf interface{}, name string) interface{}

func GetFields added in v0.5.0

func GetFields(intf interface{}, fields []string) interface{}

func HashFromValues added in v0.4.0

func HashFromValues(ab interface{}, ba interface{}) []byte

func Var8bin added in v0.3.0

func Var8bin(v []byte) []byte

Types

type BoolFilter added in v0.5.0

type BoolFilter struct {
	Op      BoolFilterOp `protobuf:"varint,1,opt,name=Op,enum=flow.BoolFilterOp" json:"Op,omitempty"`
	Filters []*Filter    `protobuf:"bytes,2,rep,name=Filters" json:"Filters,omitempty"`
}

func (*BoolFilter) Descriptor added in v0.5.0

func (*BoolFilter) Descriptor() ([]byte, []int)

func (*BoolFilter) Eval added in v0.5.0

func (b *BoolFilter) Eval(value interface{}) bool

func (*BoolFilter) Expression added in v0.5.0

func (b *BoolFilter) Expression() string

func (*BoolFilter) GetFilters added in v0.5.0

func (m *BoolFilter) GetFilters() []*Filter

func (*BoolFilter) ProtoMessage added in v0.5.0

func (*BoolFilter) ProtoMessage()

func (*BoolFilter) Reset added in v0.5.0

func (m *BoolFilter) Reset()

func (*BoolFilter) String added in v0.5.0

func (m *BoolFilter) String() string

type BoolFilterOp added in v0.5.0

type BoolFilterOp int32
const (
	BoolFilterOp_OR  BoolFilterOp = 0
	BoolFilterOp_AND BoolFilterOp = 1
	BoolFilterOp_NOT BoolFilterOp = 2
)

func (BoolFilterOp) EnumDescriptor added in v0.5.0

func (BoolFilterOp) EnumDescriptor() ([]byte, []int)

func (BoolFilterOp) String added in v0.5.0

func (x BoolFilterOp) String() string

type ExpireUpdateFunc added in v0.3.0

type ExpireUpdateFunc func(f []*Flow)

type Filter added in v0.5.0

type Filter struct {
	TermStringFilter *TermStringFilter `protobuf:"bytes,1,opt,name=TermStringFilter" json:"TermStringFilter,omitempty"`
	TermInt64Filter  *TermInt64Filter  `protobuf:"bytes,2,opt,name=TermInt64Filter" json:"TermInt64Filter,omitempty"`
	GtInt64Filter    *GtInt64Filter    `protobuf:"bytes,3,opt,name=GtInt64Filter" json:"GtInt64Filter,omitempty"`
	LtInt64Filter    *LtInt64Filter    `protobuf:"bytes,4,opt,name=LtInt64Filter" json:"LtInt64Filter,omitempty"`
	GteInt64Filter   *GteInt64Filter   `protobuf:"bytes,5,opt,name=GteInt64Filter" json:"GteInt64Filter,omitempty"`
	LteInt64Filter   *LteInt64Filter   `protobuf:"bytes,6,opt,name=LteInt64Filter" json:"LteInt64Filter,omitempty"`
	BoolFilter       *BoolFilter       `protobuf:"bytes,7,opt,name=BoolFilter" json:"BoolFilter,omitempty"`
}

func NewFilterForNodes added in v0.5.0

func NewFilterForNodes(uuids []string) *Filter

func (*Filter) Descriptor added in v0.5.0

func (*Filter) Descriptor() ([]byte, []int)

func (*Filter) Eval added in v0.5.0

func (f *Filter) Eval(value interface{}) bool

func (*Filter) Expression added in v0.5.0

func (f *Filter) Expression() string

func (*Filter) GetBoolFilter added in v0.5.0

func (m *Filter) GetBoolFilter() *BoolFilter

func (*Filter) GetGtInt64Filter added in v0.5.0

func (m *Filter) GetGtInt64Filter() *GtInt64Filter

func (*Filter) GetGteInt64Filter added in v0.5.0

func (m *Filter) GetGteInt64Filter() *GteInt64Filter

func (*Filter) GetLtInt64Filter added in v0.5.0

func (m *Filter) GetLtInt64Filter() *LtInt64Filter

func (*Filter) GetLteInt64Filter added in v0.5.0

func (m *Filter) GetLteInt64Filter() *LteInt64Filter

func (*Filter) GetTermInt64Filter added in v0.5.0

func (m *Filter) GetTermInt64Filter() *TermInt64Filter

func (*Filter) GetTermStringFilter added in v0.5.0

func (m *Filter) GetTermStringFilter() *TermStringFilter

func (*Filter) ProtoMessage added in v0.5.0

func (*Filter) ProtoMessage()

func (*Filter) Reset added in v0.5.0

func (m *Filter) Reset()

func (*Filter) String added in v0.5.0

func (m *Filter) String() string

type Flow

type Flow struct {
	// Flow Universally Unique IDentifier
	//
	// flow.UUID is unique in the universe, as it should be used as a key of an
	// hashtable. By design 2 different flows, their UUID are always different.
	// flow.UUID can be used as Database Index.
	UUID       string `protobuf:"bytes,1,opt,name=UUID" json:"UUID,omitempty"`
	LayersPath string `protobuf:"bytes,2,opt,name=LayersPath" json:"LayersPath,omitempty"`
	// Data Flow info
	Statistics *FlowStatistics `protobuf:"bytes,3,opt,name=Statistics" json:"Statistics,omitempty"`
	// Flow Tracking IDentifier, from 1st packet bytes
	//
	// flow.TrackingID could be used to identify an unique flow whatever it has
	// been captured on the infrastructure. flow.TrackingID is calculated from
	// the bytes of the first packet of his session.
	// flow.TrackingID can be used as a Tag.
	TrackingID string `protobuf:"bytes,5,opt,name=TrackingID" json:"TrackingID,omitempty"`
	// Topology info
	ProbeNodeUUID string           `protobuf:"bytes,11,opt,name=ProbeNodeUUID" json:"ProbeNodeUUID,omitempty"`
	IfSrcNodeUUID string           `protobuf:"bytes,14,opt,name=IfSrcNodeUUID" json:"IfSrcNodeUUID,omitempty"`
	IfDstNodeUUID string           `protobuf:"bytes,19,opt,name=IfDstNodeUUID" json:"IfDstNodeUUID,omitempty"`
	MetricRange   *FlowMetricRange `protobuf:"bytes,20,opt,name=MetricRange" json:"MetricRange,omitempty"`
}

func FlowFromGoPacket added in v0.3.0

func FlowFromGoPacket(ft *Table, packet *gopacket.Packet, length uint64, setter FlowProbeNodeSetter) *Flow

func FlowsFromSFlowSample added in v0.3.0

func FlowsFromSFlowSample(ft *Table, sample *layers.SFlowFlowSample, setter FlowProbeNodeSetter) []*Flow

func FromData

func FromData(data []byte) (*Flow, error)

func GenerateTestFlows added in v0.3.0

func GenerateTestFlows(t *testing.T, ft *Table, baseSeed int64, uuid string) []*Flow

func GenerateTestFlowsSymmetric added in v0.3.0

func GenerateTestFlowsSymmetric(t *testing.T, ft *Table, baseSeed int64, uuid string) []*Flow

func (*Flow) Descriptor

func (*Flow) Descriptor() ([]byte, []int)

func (*Flow) GetData

func (flow *Flow) GetData() ([]byte, error)

func (*Flow) GetLayerHash added in v0.4.0

func (flow *Flow) GetLayerHash(layer FlowEndpointLayer) string

func (*Flow) GetMetricRange added in v0.5.0

func (m *Flow) GetMetricRange() *FlowMetricRange

func (*Flow) GetStatistics

func (m *Flow) GetStatistics() *FlowStatistics

func (*Flow) ProtoMessage

func (*Flow) ProtoMessage()

func (*Flow) Reset

func (m *Flow) Reset()

func (*Flow) String

func (m *Flow) String() string

func (*Flow) UpdateUUIDs added in v0.4.0

func (flow *Flow) UpdateUUIDs(key string)

type FlowEndpointLayer added in v0.3.0

type FlowEndpointLayer int32
const (
	FlowEndpointLayer_LINK      FlowEndpointLayer = 0
	FlowEndpointLayer_NETWORK   FlowEndpointLayer = 1
	FlowEndpointLayer_TRANSPORT FlowEndpointLayer = 2
)

func (FlowEndpointLayer) EnumDescriptor added in v0.3.0

func (FlowEndpointLayer) EnumDescriptor() ([]byte, []int)

func (FlowEndpointLayer) String added in v0.3.0

func (x FlowEndpointLayer) String() string

type FlowEndpointStatistics

type FlowEndpointStatistics struct {
	Value   string `protobuf:"bytes,2,opt,name=Value" json:"Value,omitempty"`
	Packets uint64 `protobuf:"varint,5,opt,name=Packets" json:"Packets,omitempty"`
	Bytes   uint64 `protobuf:"varint,6,opt,name=Bytes" json:"Bytes,omitempty"`
}

func (*FlowEndpointStatistics) Descriptor

func (*FlowEndpointStatistics) Descriptor() ([]byte, []int)

func (*FlowEndpointStatistics) ProtoMessage

func (*FlowEndpointStatistics) ProtoMessage()

func (*FlowEndpointStatistics) Reset

func (m *FlowEndpointStatistics) Reset()

func (*FlowEndpointStatistics) String

func (m *FlowEndpointStatistics) String() string

type FlowEndpointType

type FlowEndpointType int32
const (
	FlowEndpointType_ETHERNET FlowEndpointType = 0
	FlowEndpointType_IPV4     FlowEndpointType = 1
	FlowEndpointType_TCPPORT  FlowEndpointType = 2
	FlowEndpointType_UDPPORT  FlowEndpointType = 3
	FlowEndpointType_SCTPPORT FlowEndpointType = 4
	FlowEndpointType_IPV6     FlowEndpointType = 5
)

func (FlowEndpointType) EnumDescriptor

func (FlowEndpointType) EnumDescriptor() ([]byte, []int)

func (FlowEndpointType) String

func (x FlowEndpointType) String() string

func (FlowEndpointType) Value

func (x FlowEndpointType) Value() int32

type FlowEndpointsStatistics

type FlowEndpointsStatistics struct {
	Type FlowEndpointType        `protobuf:"varint,1,opt,name=Type,enum=flow.FlowEndpointType" json:"Type,omitempty"`
	Hash []byte                  `protobuf:"bytes,2,opt,name=Hash,proto3" json:"Hash,omitempty"`
	AB   *FlowEndpointStatistics `protobuf:"bytes,3,opt,name=AB" json:"AB,omitempty"`
	BA   *FlowEndpointStatistics `protobuf:"bytes,4,opt,name=BA" json:"BA,omitempty"`
}

func (*FlowEndpointsStatistics) Copy added in v0.5.0

func (*FlowEndpointsStatistics) Descriptor

func (*FlowEndpointsStatistics) Descriptor() ([]byte, []int)

func (*FlowEndpointsStatistics) GetAB

func (*FlowEndpointsStatistics) GetAttr added in v0.5.0

func (fes *FlowEndpointsStatistics) GetAttr(name string) interface{}

func (*FlowEndpointsStatistics) GetBA

func (*FlowEndpointsStatistics) MarshalJSON added in v0.2.0

func (s *FlowEndpointsStatistics) MarshalJSON() ([]byte, error)

func (*FlowEndpointsStatistics) ProtoMessage

func (*FlowEndpointsStatistics) ProtoMessage()

func (*FlowEndpointsStatistics) Reset

func (m *FlowEndpointsStatistics) Reset()

func (*FlowEndpointsStatistics) String

func (m *FlowEndpointsStatistics) String() string

func (*FlowEndpointsStatistics) UnmarshalJSON added in v0.2.0

func (s *FlowEndpointsStatistics) UnmarshalJSON(b []byte) error

type FlowHandler added in v0.4.0

type FlowHandler struct {
	// contains filtered or unexported fields
}

func NewFlowHandler added in v0.4.0

func NewFlowHandler(callback ExpireUpdateFunc, every time.Duration) *FlowHandler

type FlowKey

type FlowKey string

func FlowKeyFromGoPacket added in v0.4.0

func FlowKeyFromGoPacket(p *gopacket.Packet) FlowKey

func (FlowKey) String

func (f FlowKey) String() string

type FlowMetricRange added in v0.5.0

type FlowMetricRange struct {
	Start     int64  `protobuf:"varint,1,opt,name=Start" json:"Start,omitempty"`
	Last      int64  `protobuf:"varint,2,opt,name=Last" json:"Last,omitempty"`
	ABPackets uint64 `protobuf:"varint,3,opt,name=ABPackets" json:"ABPackets,omitempty"`
	ABBytes   uint64 `protobuf:"varint,4,opt,name=ABBytes" json:"ABBytes,omitempty"`
	BAPackets uint64 `protobuf:"varint,5,opt,name=BAPackets" json:"BAPackets,omitempty"`
	BABytes   uint64 `protobuf:"varint,6,opt,name=BABytes" json:"BABytes,omitempty"`
}

func (*FlowMetricRange) Descriptor added in v0.5.0

func (*FlowMetricRange) Descriptor() ([]byte, []int)

func (*FlowMetricRange) ProtoMessage added in v0.5.0

func (*FlowMetricRange) ProtoMessage()

func (*FlowMetricRange) Reset added in v0.5.0

func (m *FlowMetricRange) Reset()

func (*FlowMetricRange) String added in v0.5.0

func (m *FlowMetricRange) String() string

type FlowProbeNodeSetter added in v0.4.0

type FlowProbeNodeSetter interface {
	SetProbeNode(flow *Flow) bool
}

type FlowSearchQuery added in v0.4.0

type FlowSearchQuery struct {
	Filter *Filter `protobuf:"bytes,1,opt,name=Filter" json:"Filter,omitempty"`
	Range  *Range  `protobuf:"bytes,2,opt,name=Range" json:"Range,omitempty"`
}

func (*FlowSearchQuery) Descriptor added in v0.5.0

func (*FlowSearchQuery) Descriptor() ([]byte, []int)

func (*FlowSearchQuery) GetFilter added in v0.5.0

func (m *FlowSearchQuery) GetFilter() *Filter

func (*FlowSearchQuery) GetRange added in v0.6.0

func (m *FlowSearchQuery) GetRange() *Range

func (*FlowSearchQuery) ProtoMessage added in v0.5.0

func (*FlowSearchQuery) ProtoMessage()

func (*FlowSearchQuery) Reset added in v0.5.0

func (m *FlowSearchQuery) Reset()

func (*FlowSearchQuery) String added in v0.5.0

func (m *FlowSearchQuery) String() string

type FlowSearchReply added in v0.4.0

type FlowSearchReply struct {
	FlowSet *FlowSet `protobuf:"bytes,1,opt,name=FlowSet" json:"FlowSet,omitempty"`
}

func (*FlowSearchReply) Descriptor added in v0.5.0

func (*FlowSearchReply) Descriptor() ([]byte, []int)

func (*FlowSearchReply) GetFlowSet added in v0.5.0

func (m *FlowSearchReply) GetFlowSet() *FlowSet

func (*FlowSearchReply) ProtoMessage added in v0.5.0

func (*FlowSearchReply) ProtoMessage()

func (*FlowSearchReply) Reset added in v0.5.0

func (m *FlowSearchReply) Reset()

func (*FlowSearchReply) String added in v0.5.0

func (m *FlowSearchReply) String() string

type FlowSet added in v0.4.0

type FlowSet struct {
	Flows []*Flow `protobuf:"bytes,1,rep,name=Flows" json:"Flows,omitempty"`
	Start int64   `protobuf:"varint,2,opt,name=Start" json:"Start,omitempty"`
	End   int64   `protobuf:"varint,3,opt,name=End" json:"End,omitempty"`
}

func NewFlowSet added in v0.4.0

func NewFlowSet() *FlowSet

func (*FlowSet) AvgBandwidth added in v0.5.0

func (fs *FlowSet) AvgBandwidth() (fsbw FlowSetBandwidth)

func (*FlowSet) Bandwidth added in v0.4.0

func (fs *FlowSet) Bandwidth() (fsbw FlowSetBandwidth)

func (*FlowSet) Descriptor added in v0.5.0

func (*FlowSet) Descriptor() ([]byte, []int)

func (*FlowSet) Filter added in v0.5.0

func (fs *FlowSet) Filter(filter *Filter) *FlowSet

func (*FlowSet) GetFlows added in v0.5.0

func (m *FlowSet) GetFlows() []*Flow

func (*FlowSet) Merge added in v0.4.0

func (fs *FlowSet) Merge(ofs *FlowSet)

func (*FlowSet) ProtoMessage added in v0.5.0

func (*FlowSet) ProtoMessage()

func (*FlowSet) Reset added in v0.5.0

func (m *FlowSet) Reset()

func (*FlowSet) String added in v0.5.0

func (m *FlowSet) String() string

type FlowSetBandwidth added in v0.4.0

type FlowSetBandwidth struct {
	ABpackets uint64
	ABbytes   uint64
	BApackets uint64
	BAbytes   uint64
	Duration  int64
	NBFlow    uint64
}

func (FlowSetBandwidth) String added in v0.4.0

func (fsbw FlowSetBandwidth) String() string

type FlowStatistics

type FlowStatistics struct {
	Start     int64                      `protobuf:"varint,1,opt,name=Start" json:"Start,omitempty"`
	Last      int64                      `protobuf:"varint,2,opt,name=Last" json:"Last,omitempty"`
	Endpoints []*FlowEndpointsStatistics `protobuf:"bytes,3,rep,name=Endpoints" json:"Endpoints,omitempty"`
}

func (*FlowStatistics) Descriptor

func (*FlowStatistics) Descriptor() ([]byte, []int)

func (*FlowStatistics) DumpInfo added in v0.3.0

func (fs *FlowStatistics) DumpInfo(layerSeparator ...string) string

func (*FlowStatistics) GetEndpoints

func (m *FlowStatistics) GetEndpoints() []*FlowEndpointsStatistics

func (*FlowStatistics) GetEndpointsType added in v0.3.0

func (fs *FlowStatistics) GetEndpointsType(eptype FlowEndpointType) *FlowEndpointsStatistics

func (*FlowStatistics) GetLayer added in v0.5.0

func (*FlowStatistics) GetLayerHash added in v0.4.0

func (fs *FlowStatistics) GetLayerHash(layer FlowEndpointLayer) (hash []byte)

func (*FlowStatistics) Init added in v0.4.0

func (fs *FlowStatistics) Init(now int64, packet *gopacket.Packet, length uint64)

func (*FlowStatistics) ProtoMessage

func (*FlowStatistics) ProtoMessage()

func (*FlowStatistics) Reset

func (m *FlowStatistics) Reset()

func (*FlowStatistics) String

func (m *FlowStatistics) String() string

func (*FlowStatistics) Update added in v0.3.0

func (fs *FlowStatistics) Update(now int64, packet *gopacket.Packet, length uint64)

type GetAttr added in v0.5.0

type GetAttr interface {
	GetAttr(name string) interface{}
}

type GtInt64Filter added in v0.5.0

type GtInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=Value" json:"Value,omitempty"`
}

func (*GtInt64Filter) Descriptor added in v0.5.0

func (*GtInt64Filter) Descriptor() ([]byte, []int)

func (*GtInt64Filter) Eval added in v0.5.0

func (r *GtInt64Filter) Eval(value interface{}) bool

func (*GtInt64Filter) Expression added in v0.5.0

func (r *GtInt64Filter) Expression() string

func (*GtInt64Filter) ProtoMessage added in v0.5.0

func (*GtInt64Filter) ProtoMessage()

func (*GtInt64Filter) Reset added in v0.5.0

func (m *GtInt64Filter) Reset()

func (*GtInt64Filter) String added in v0.5.0

func (m *GtInt64Filter) String() string

type GteInt64Filter added in v0.5.0

type GteInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=Value" json:"Value,omitempty"`
}

func (*GteInt64Filter) Descriptor added in v0.5.0

func (*GteInt64Filter) Descriptor() ([]byte, []int)

func (*GteInt64Filter) Eval added in v0.5.0

func (r *GteInt64Filter) Eval(value interface{}) bool

func (*GteInt64Filter) Expression added in v0.5.0

func (r *GteInt64Filter) Expression() string

func (*GteInt64Filter) ProtoMessage added in v0.5.0

func (*GteInt64Filter) ProtoMessage()

func (*GteInt64Filter) Reset added in v0.5.0

func (m *GteInt64Filter) Reset()

func (*GteInt64Filter) String added in v0.5.0

func (m *GteInt64Filter) String() string

type HostNodeIDMap added in v0.4.0

type HostNodeIDMap map[string][]string

type LtInt64Filter added in v0.5.0

type LtInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=Value" json:"Value,omitempty"`
}

func (*LtInt64Filter) Descriptor added in v0.5.0

func (*LtInt64Filter) Descriptor() ([]byte, []int)

func (*LtInt64Filter) Eval added in v0.5.0

func (r *LtInt64Filter) Eval(value interface{}) bool

func (*LtInt64Filter) Expression added in v0.5.0

func (r *LtInt64Filter) Expression() string

func (*LtInt64Filter) ProtoMessage added in v0.5.0

func (*LtInt64Filter) ProtoMessage()

func (*LtInt64Filter) Reset added in v0.5.0

func (m *LtInt64Filter) Reset()

func (*LtInt64Filter) String added in v0.5.0

func (m *LtInt64Filter) String() string

type LteInt64Filter added in v0.5.0

type LteInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=Value" json:"Value,omitempty"`
}

func (*LteInt64Filter) Descriptor added in v0.5.0

func (*LteInt64Filter) Descriptor() ([]byte, []int)

func (*LteInt64Filter) Eval added in v0.5.0

func (r *LteInt64Filter) Eval(value interface{}) bool

func (*LteInt64Filter) Expression added in v0.5.0

func (r *LteInt64Filter) Expression() string

func (*LteInt64Filter) ProtoMessage added in v0.5.0

func (*LteInt64Filter) ProtoMessage()

func (*LteInt64Filter) Reset added in v0.5.0

func (m *LteInt64Filter) Reset()

func (*LteInt64Filter) String added in v0.5.0

func (m *LteInt64Filter) String() string

type NeInt64Filter added in v0.5.0

type NeInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=Value" json:"Value,omitempty"`
}

func (*NeInt64Filter) Descriptor added in v0.5.0

func (*NeInt64Filter) Descriptor() ([]byte, []int)

func (*NeInt64Filter) ProtoMessage added in v0.5.0

func (*NeInt64Filter) ProtoMessage()

func (*NeInt64Filter) Reset added in v0.5.0

func (m *NeInt64Filter) Reset()

func (*NeInt64Filter) String added in v0.5.0

func (m *NeInt64Filter) String() string

type NeStringFilter added in v0.5.0

type NeStringFilter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=Value" json:"Value,omitempty"`
}

func (*NeStringFilter) Descriptor added in v0.5.0

func (*NeStringFilter) Descriptor() ([]byte, []int)

func (*NeStringFilter) ProtoMessage added in v0.5.0

func (*NeStringFilter) ProtoMessage()

func (*NeStringFilter) Reset added in v0.5.0

func (m *NeStringFilter) Reset()

func (*NeStringFilter) String added in v0.5.0

func (m *NeStringFilter) String() string

type ProtocolType added in v0.3.0

type ProtocolType int
const (
	ETH ProtocolType = 1 + iota
	IPv4
	IPv6
	TCP
	UDP
)

type Range added in v0.6.0

type Range struct {
	From int64 `protobuf:"varint,1,opt,name=From" json:"From,omitempty"`
	To   int64 `protobuf:"varint,2,opt,name=To" json:"To,omitempty"`
}

func (*Range) Descriptor added in v0.6.0

func (*Range) Descriptor() ([]byte, []int)

func (*Range) ProtoMessage added in v0.6.0

func (*Range) ProtoMessage()

func (*Range) Reset added in v0.6.0

func (m *Range) Reset()

func (*Range) String added in v0.6.0

func (m *Range) String() string

type Table added in v0.4.0

type Table struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewTable added in v0.4.0

func NewTable(updateHandler *FlowHandler, expireHandler *FlowHandler) *Table

func NewTableFromFlows added in v0.4.0

func NewTableFromFlows(flows []*Flow, updateHandler *FlowHandler, expireHandler *FlowHandler) *Table

func NewTestFlowTableComplex added in v0.4.0

func NewTestFlowTableComplex(t *testing.T, updateHandler *FlowHandler, expireHandler *FlowHandler) *Table

func NewTestFlowTableSimple added in v0.3.0

func NewTestFlowTableSimple(t *testing.T) *Table

func (*Table) Expire added in v0.4.0

func (ft *Table) Expire(now time.Time)

func (*Table) FilterLast added in v0.4.0

func (ft *Table) FilterLast(last time.Duration) []*Flow

Return a new flow.Table that contain <last> active flows

func (*Table) Flush added in v0.4.0

func (ft *Table) Flush()

func (*Table) GetFlow added in v0.4.0

func (ft *Table) GetFlow(key string) *Flow

func (*Table) GetFlows added in v0.4.0

func (ft *Table) GetFlows(query *FlowSearchQuery) *FlowSet

func (*Table) GetOrCreateFlow added in v0.4.0

func (ft *Table) GetOrCreateFlow(key string) (*Flow, bool)

func (*Table) GetTime added in v0.4.0

func (ft *Table) GetTime() int64

func (*Table) Query added in v0.4.0

func (ft *Table) Query(query *TableQuery) *TableReply

func (*Table) RegisterDefault added in v0.4.0

func (ft *Table) RegisterDefault(fn func())

func (*Table) SelectLayer added in v0.4.0

func (ft *Table) SelectLayer(endpointType FlowEndpointType, list []string) *FlowSet

func (*Table) Start added in v0.4.0

func (ft *Table) Start()

func (*Table) Stop added in v0.4.0

func (ft *Table) Stop()

func (*Table) String added in v0.4.0

func (ft *Table) String() string

func (*Table) Update added in v0.4.0

func (ft *Table) Update(flows []*Flow)

func (*Table) Updated added in v0.4.0

func (ft *Table) Updated(now time.Time)

func (*Table) Window added in v0.4.0

func (ft *Table) Window(start, end int64) *FlowSet
Window returns a FlowSet with flows fitting in the given time range

Need to Rlock the table before calling. Returned flows may not be unique

type TableAllocator added in v0.4.0

type TableAllocator struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewTableAllocator added in v0.4.0

func NewTableAllocator(update, expire time.Duration) *TableAllocator

func (*TableAllocator) Alloc added in v0.4.0

func (a *TableAllocator) Alloc(flowCallBack ExpireUpdateFunc) *Table

func (*TableAllocator) Flush added in v0.4.0

func (a *TableAllocator) Flush()

func (*TableAllocator) QueryTable added in v0.4.0

func (a *TableAllocator) QueryTable(query *TableQuery) *TableReply

func (*TableAllocator) Release added in v0.4.0

func (a *TableAllocator) Release(t *Table)

type TableClient added in v0.4.0

type TableClient struct {
	shttp.DefaultWSServerEventHandler
	WSServer *shttp.WSServer
	// contains filtered or unexported fields
}

func NewTableClient added in v0.4.0

func NewTableClient(w *shttp.WSServer) *TableClient

func (*TableClient) LookupFlows added in v0.5.0

func (f *TableClient) LookupFlows(filter *Filter, interval *Range) (*FlowSet, error)

func (*TableClient) LookupFlowsByNodes added in v0.4.0

func (f *TableClient) LookupFlowsByNodes(hnmap HostNodeIDMap, filter *Filter, interval *Range) (*FlowSet, error)

func (*TableClient) OnMessage added in v0.4.0

func (f *TableClient) OnMessage(c *shttp.WSClient, m shttp.WSMessage)

type TableQuery added in v0.4.0

type TableQuery struct {
	Type string
	Obj  []byte
}

TableQuery contains a type and a query obj as an array of bytes. The query can be encoded in different ways according the type.

type TableReply added in v0.4.0

type TableReply struct {
	Status int
	Obj    [][]byte
}

TableReply is the response to a TableQuery containing a Status and an array of replies that can be encoded in many ways, ex: json, protobuf.

type TableServer added in v0.4.0

type TableServer struct {
	shttp.DefaultWSClientEventHandler
	WSAsyncClient  *shttp.WSAsyncClient
	TableAllocator *TableAllocator
}

func NewServer added in v0.4.0

func NewServer(allocator *TableAllocator, client *shttp.WSAsyncClient) *TableServer

func (*TableServer) OnMessage added in v0.4.0

func (s *TableServer) OnMessage(msg shttp.WSMessage)

func (*TableServer) OnTableQuery added in v0.5.0

func (s *TableServer) OnTableQuery(msg shttp.WSMessage)

type TermInt64Filter added in v0.5.0

type TermInt64Filter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value int64  `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
}

func (*TermInt64Filter) Descriptor added in v0.5.0

func (*TermInt64Filter) Descriptor() ([]byte, []int)

func (*TermInt64Filter) Eval added in v0.5.0

func (t *TermInt64Filter) Eval(value interface{}) bool

func (*TermInt64Filter) Expression added in v0.5.0

func (t *TermInt64Filter) Expression() string

func (*TermInt64Filter) ProtoMessage added in v0.5.0

func (*TermInt64Filter) ProtoMessage()

func (*TermInt64Filter) Reset added in v0.5.0

func (m *TermInt64Filter) Reset()

func (*TermInt64Filter) String added in v0.5.0

func (m *TermInt64Filter) String() string

type TermStringFilter added in v0.5.0

type TermStringFilter struct {
	Key   string `protobuf:"bytes,1,opt,name=Key" json:"Key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (*TermStringFilter) Descriptor added in v0.5.0

func (*TermStringFilter) Descriptor() ([]byte, []int)

func (*TermStringFilter) Eval added in v0.5.0

func (t *TermStringFilter) Eval(value interface{}) bool

func (*TermStringFilter) Expression added in v0.5.0

func (t *TermStringFilter) Expression() string

func (*TermStringFilter) ProtoMessage added in v0.5.0

func (*TermStringFilter) ProtoMessage()

func (*TermStringFilter) Reset added in v0.5.0

func (m *TermStringFilter) Reset()

func (*TermStringFilter) String added in v0.5.0

func (m *TermStringFilter) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL