Documentation
¶
Index ¶
- type BridgeOfProbe
- type Event
- type Execute
- type OvsOfProbe
- type OvsdbProbe
- func (o *OvsdbProbe) OnOvsBridgeAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsBridgeDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsBridgeUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsInterfaceAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsInterfaceDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsInterfaceUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsPortAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsPortDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) OnOvsPortUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
- func (o *OvsdbProbe) Start()
- func (o *OvsdbProbe) Stop()
- type RealExecute
- type Rule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BridgeOfProbe ¶
type BridgeOfProbe struct {
Host string // The global host
Bridge string // The bridge monitored
UUID string // The UUID of the bridge node
Address string // The address of the bridge if different from name
BridgeNode *graph.Node // the bridge node on which the rule nodes are attached.
OvsOfProbe *OvsOfProbe // Back pointer to the probe
Rules map[string][]*Rule // The set of rules found so far grouped by rawUUID
// contains filtered or unexported fields
}
BridgeOfProbe is the type of the probe retrieving Openflow rules on a Bridge.
An important notion is the rawUUID of a rule or the UUID obtained by ignoring the priority from the rule filter. Several rules may differ only by their priority (and associated actions). In practice the highest priority hides the other rules. It is important to handle rules with the same rawUUID as a group because ovs-ofctl monitor does not report priorities.
type Event ¶
type Event struct {
RawRule *Rule // The rule from the event
Rules []*Rule // Rules found by ovs-ofctl matching the event rule filter.
Date int64 // the date of the event
Action string // the action taken
Bridge string // The bridge whtere it ocured
}
Event is an event as monitored by ovs-ofctl monitor <br> watch:
type Execute ¶
type Execute interface {
ExecCommand(string, ...string) ([]byte, error)
ExecCommandPipe(context.Context, string, ...string) (io.Reader, error)
}
Execute exposes an interface to command launch on the OS
type OvsOfProbe ¶
type OvsOfProbe struct {
sync.Mutex
Host string // The host
Graph *graph.Graph // The graph that will receive the rules found
Root *graph.Node // The root node of the host in the graph
BridgeProbes map[string]*BridgeOfProbe // The table of probes associated to each bridge
Translation map[string]string // A translation table to find the url for a given bridge knowing its name
Certificate string // Path to the certificate used for authenticated communication with bridges
PrivateKey string // Path of the private key authenticating the probe.
CA string // Path of the certicate of the Certificate authority used for authenticated communication with bridges
// contains filtered or unexported fields
}
OvsOfProbe is the type of the probe retrieving Openflow rules on an Open Vswitch
func NewOvsOfProbe ¶
NewOvsOfProbe creates a new probe associated to a given graph, root node and host.
func (*OvsOfProbe) NewBridgeProbe ¶
func (o *OvsOfProbe) NewBridgeProbe(host string, bridge string, uuid string, bridgeNode *graph.Node) (*BridgeOfProbe, error)
NewBridgeProbe creates a probe and launch the active process
func (*OvsOfProbe) OnOvsBridgeAdd ¶
func (o *OvsOfProbe) OnOvsBridgeAdd(bridgeNode *graph.Node)
OnOvsBridgeAdd is called when a bridge is added
func (*OvsOfProbe) OnOvsBridgeDel ¶
func (o *OvsOfProbe) OnOvsBridgeDel(uuid string, bridgeNode *graph.Node)
OnOvsBridgeDel is called when a bridge is deleted
type OvsdbProbe ¶
type OvsdbProbe struct {
sync.Mutex
Graph *graph.Graph
Root *graph.Node
OvsMon *ovsdb.OvsMonitor
OvsOfProbe *OvsOfProbe
// contains filtered or unexported fields
}
OvsdbProbe describes a probe that reads OVS database and updates the graph
func NewOvsdbProbe ¶
NewOvsdbProbe creates a new graph OVS database probe
func NewOvsdbProbeFromConfig ¶
func NewOvsdbProbeFromConfig(g *graph.Graph, n *graph.Node) *OvsdbProbe
NewOvsdbProbeFromConfig creates a new probe based on configuration
func (*OvsdbProbe) OnOvsBridgeAdd ¶
func (o *OvsdbProbe) OnOvsBridgeAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsBridgeAdd event
func (*OvsdbProbe) OnOvsBridgeDel ¶
func (o *OvsdbProbe) OnOvsBridgeDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsBridgeDel event
func (*OvsdbProbe) OnOvsBridgeUpdate ¶
func (o *OvsdbProbe) OnOvsBridgeUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsBridgeUpdate event
func (*OvsdbProbe) OnOvsInterfaceAdd ¶
func (o *OvsdbProbe) OnOvsInterfaceAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsInterfaceAdd event
func (*OvsdbProbe) OnOvsInterfaceDel ¶
func (o *OvsdbProbe) OnOvsInterfaceDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsInterfaceDel event
func (*OvsdbProbe) OnOvsInterfaceUpdate ¶
func (o *OvsdbProbe) OnOvsInterfaceUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsInterfaceUpdate event
func (*OvsdbProbe) OnOvsPortAdd ¶
func (o *OvsdbProbe) OnOvsPortAdd(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsPortAdd event
func (*OvsdbProbe) OnOvsPortDel ¶
func (o *OvsdbProbe) OnOvsPortDel(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsPortDel event
func (*OvsdbProbe) OnOvsPortUpdate ¶
func (o *OvsdbProbe) OnOvsPortUpdate(monitor *ovsdb.OvsMonitor, uuid string, row *libovsdb.RowUpdate)
OnOvsPortUpdate event
type RealExecute ¶
type RealExecute struct{}
RealExecute is the actual implementation given below. It can be overriden for tests.
type Rule ¶
type Rule struct {
Cookie uint64 // cookie value of the rule
Table int // table containing the rule
Priority int // priority of rule
Filter string // all the filters as a comma separated string
Actions string // all the actions (comma separated)
InPort int // -1 is any
UUID string // Unique id
}
Rule is an OpenFlow rule in a switch
Source Files
¶
- ovs_of.go
- ovsdb.go