Documentation ¶
Overview ¶
** Copyright 2014 Cisco Systems Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
** Copyright 2014 Cisco Systems Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
** Copyright 2014 Cisco Systems Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
** Copyright 2014 Cisco Systems Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- type EndpointInfo
- type MacRoute
- type OfnetAgent
- func (self *OfnetAgent) AddLocalEndpoint(endpoint EndpointInfo) error
- func (self *OfnetAgent) AddMaster(masterInfo *OfnetNode, ret *bool) error
- func (self *OfnetAgent) AddVlan(vlanId uint16, vni uint32) error
- func (self *OfnetAgent) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *OfnetAgent) Delete() error
- func (self *OfnetAgent) DummyRpc(arg *string, ret *bool) error
- func (self *OfnetAgent) IsSwitchConnected() bool
- func (self *OfnetAgent) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *OfnetAgent) RemoveLocalEndpoint(portNo uint32) error
- func (self *OfnetAgent) RemoveMaster(masterInfo *OfnetNode) error
- func (self *OfnetAgent) RemoveVlan(vlanId uint16, vni uint32) error
- func (self *OfnetAgent) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *OfnetAgent) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *OfnetAgent) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type OfnetDatapath
- type OfnetMaster
- func (self *OfnetMaster) Delete() error
- func (self *OfnetMaster) MacRouteAdd(macRoute *MacRoute, ret *bool) error
- func (self *OfnetMaster) MacRouteDel(macRoute *MacRoute, ret *bool) error
- func (self *OfnetMaster) MakeDummyRpcCall() error
- func (self *OfnetMaster) RegisterNode(hostInfo *OfnetNode, ret *bool) error
- func (self *OfnetMaster) RouteAdd(route *OfnetRoute, ret *bool) error
- func (self *OfnetMaster) RouteDel(route *OfnetRoute, ret *bool) error
- type OfnetNode
- type OfnetRoute
- type Vlan
- type Vrouter
- func (self *Vrouter) AddLocalEndpoint(endpoint EndpointInfo) error
- func (self *Vrouter) AddVlan(vlanId uint16, vni uint32) error
- func (self *Vrouter) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vrouter) MasterAdded(master *OfnetNode) error
- func (self *Vrouter) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *Vrouter) RemoveLocalEndpoint(portNo uint32) error
- func (self *Vrouter) RemoveVlan(vlanId uint16, vni uint32) error
- func (self *Vrouter) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vrouter) RouteAdd(route *OfnetRoute, ret *bool) error
- func (self *Vrouter) RouteDel(route *OfnetRoute, ret *bool) error
- func (self *Vrouter) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *Vrouter) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type Vxlan
- func (self *Vxlan) AddLocalEndpoint(endpoint EndpointInfo) error
- func (self *Vxlan) AddVlan(vlanId uint16, vni uint32) error
- func (self *Vxlan) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vxlan) MacRouteAdd(macRoute *MacRoute, ret *bool) error
- func (self *Vxlan) MacRouteDel(macRoute *MacRoute, ret *bool) error
- func (self *Vxlan) MasterAdded(master *OfnetNode) error
- func (self *Vxlan) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *Vxlan) RemoveLocalEndpoint(portNo uint32) error
- func (self *Vxlan) RemoveVlan(vlanId uint16, vni uint32) error
- func (self *Vxlan) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vxlan) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *Vxlan) SwitchDisconnected(sw *ofctrl.OFSwitch)
Constants ¶
const FLOW_FLOOD_PRIORITY = 10 // Priority for flood entries
const FLOW_MATCH_PRIORITY = 100 // Priority for all match flows
const FLOW_MISS_PRIORITY = 1 // priority for table miss flow
const IP_TBL_ID = 2
const MAC_DEST_TBL_ID = 3
const METADATA_RX_VTEP = 0x1
const OFNET_AGENT_PORT = 9002
const OFNET_MASTER_PORT = 9001
Default port numbers
const VLAN_TBL_ID = 1
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EndpointInfo ¶
local End point information
type MacRoute ¶
type MacRoute struct { MacAddrStr string // Mac address of the end point(in string format) Vni uint32 // Vxlan VNI OriginatorIp net.IP // Originating switch PortNo uint32 // Port number on originating switch Timestamp time.Time // Timestamp of the last event }
Mac address info
type OfnetAgent ¶
type OfnetAgent struct { MyPort uint16 // Port where the agent's RPC server is listening MyAddr string // RPC server addr. same as localIp. different in testing environments // contains filtered or unexported fields }
OfnetAgent state
func NewOfnetAgent ¶
func NewOfnetAgent(dpName string, localIp net.IP, rpcPort uint16, ovsPort uint16) (*OfnetAgent, error)
Create a new Ofnet agent and initialize it
func (*OfnetAgent) AddLocalEndpoint ¶
func (self *OfnetAgent) AddLocalEndpoint(endpoint EndpointInfo) error
Add a local endpoint. This takes ofp port number, mac address, vlan and IP address of the port.
func (*OfnetAgent) AddMaster ¶
func (self *OfnetAgent) AddMaster(masterInfo *OfnetNode, ret *bool) error
Add a master ofnet agent tries to connect to the master and download routes
func (*OfnetAgent) AddVlan ¶
func (self *OfnetAgent) AddVlan(vlanId uint16, vni uint32) error
Add a vlan. This is mainly used for mapping vlan id to Vxlan VNI
func (*OfnetAgent) AddVtepPort ¶
func (self *OfnetAgent) AddVtepPort(portNo uint32, remoteIp net.IP) error
Add virtual tunnel end point. This is mainly used for mapping remote vtep IP to ofp port number.
func (*OfnetAgent) IsSwitchConnected ¶
func (self *OfnetAgent) IsSwitchConnected() bool
IsSwitchConnected returns true if switch is connected
func (*OfnetAgent) PacketRcvd ¶
func (self *OfnetAgent) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
Receive a packet from the switch.
func (*OfnetAgent) RemoveLocalEndpoint ¶
func (self *OfnetAgent) RemoveLocalEndpoint(portNo uint32) error
Remove local endpoint
func (*OfnetAgent) RemoveMaster ¶
func (self *OfnetAgent) RemoveMaster(masterInfo *OfnetNode) error
Remove the master from master DB
func (*OfnetAgent) RemoveVlan ¶
func (self *OfnetAgent) RemoveVlan(vlanId uint16, vni uint32) error
Remove a vlan from datapath
func (*OfnetAgent) RemoveVtepPort ¶
func (self *OfnetAgent) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
Remove a VTEP port
func (*OfnetAgent) SwitchConnected ¶
func (self *OfnetAgent) SwitchConnected(sw *ofctrl.OFSwitch)
Handle switch connected event
func (*OfnetAgent) SwitchDisconnected ¶
func (self *OfnetAgent) SwitchDisconnected(sw *ofctrl.OFSwitch)
Handle switch disconnect event
type OfnetDatapath ¶
type OfnetDatapath interface { // New master was added. MasterAdded(master *OfnetNode) error // Switch connected notification SwitchConnected(sw *ofctrl.OFSwitch) // Switch disconnected notification SwitchDisconnected(sw *ofctrl.OFSwitch) // Process Incoming packet PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn) // Add a local endpoint to forwarding DB AddLocalEndpoint(endpoint EndpointInfo) error // Remove a local endpoint from forwarding DB RemoveLocalEndpoint(portNo uint32) error // Add an remote VTEP AddVtepPort(portNo uint32, remoteIp net.IP) error // Remove remote VTEP RemoveVtepPort(portNo uint32, remoteIp net.IP) error // Add a vlan AddVlan(vlanId uint16, vni uint32) error // Remove a vlan RemoveVlan(vlanId uint16, vni uint32) error }
Interface implemented by each datapath
type OfnetMaster ¶
type OfnetMaster struct {
// contains filtered or unexported fields
}
Ofnet master state
func (*OfnetMaster) MacRouteAdd ¶
func (self *OfnetMaster) MacRouteAdd(macRoute *MacRoute, ret *bool) error
Add a mac route
func (*OfnetMaster) MacRouteDel ¶
func (self *OfnetMaster) MacRouteDel(macRoute *MacRoute, ret *bool) error
Delete a mac route
func (*OfnetMaster) MakeDummyRpcCall ¶
func (self *OfnetMaster) MakeDummyRpcCall() error
Make a dummy RPC call to all agents. for testing purposes..
func (*OfnetMaster) RegisterNode ¶
func (self *OfnetMaster) RegisterNode(hostInfo *OfnetNode, ret *bool) error
Register an agent
func (*OfnetMaster) RouteAdd ¶
func (self *OfnetMaster) RouteAdd(route *OfnetRoute, ret *bool) error
Add a route
func (*OfnetMaster) RouteDel ¶
func (self *OfnetMaster) RouteDel(route *OfnetRoute, ret *bool) error
Delete a route
type OfnetRoute ¶
type OfnetRoute struct { IpAddr net.IP // IP address of the end point VrfId uint16 // IP address namespace OriginatorIp net.IP // Originating switch PortNo uint32 // Port number on originating switch Timestamp time.Time // Timestamp of the last event }
IP Route information
type Vlan ¶
type Vlan struct { Vni uint32 // Vxlan VNI // contains filtered or unexported fields }
Vlan info
type Vrouter ¶
type Vrouter struct {
// contains filtered or unexported fields
}
Vrouter state. One Vrouter instance exists on each host
func NewVrouter ¶
func NewVrouter(agent *OfnetAgent, rpcServ *rpc.Server) *Vrouter
Create a new vrouter instance
func (*Vrouter) AddLocalEndpoint ¶
func (self *Vrouter) AddLocalEndpoint(endpoint EndpointInfo) error
Add a local endpoint and install associated local route
func (*Vrouter) AddVtepPort ¶
Add virtual tunnel end point. This is mainly used for mapping remote vtep IP to ofp port number.
func (*Vrouter) MasterAdded ¶
Handle new master added event
func (*Vrouter) PacketRcvd ¶
Handle incoming packet
func (*Vrouter) RemoveLocalEndpoint ¶
Remove local endpoint
func (*Vrouter) RemoveVlan ¶
Remove a vlan
func (*Vrouter) RemoveVtepPort ¶
Remove a VTEP port
func (*Vrouter) RouteAdd ¶
func (self *Vrouter) RouteAdd(route *OfnetRoute, ret *bool) error
Add remote route RPC call from master
func (*Vrouter) RouteDel ¶
func (self *Vrouter) RouteDel(route *OfnetRoute, ret *bool) error
Delete remote route RPC call from master
func (*Vrouter) SwitchConnected ¶
Handle switch connected notification
func (*Vrouter) SwitchDisconnected ¶
Handle switch disconnected notification
type Vxlan ¶
type Vxlan struct {
// contains filtered or unexported fields
}
Vxlan state.
func NewVxlan ¶
func NewVxlan(agent *OfnetAgent, rpcServ *rpc.Server) *Vxlan
Create a new vxlan instance
func (*Vxlan) AddLocalEndpoint ¶
func (self *Vxlan) AddLocalEndpoint(endpoint EndpointInfo) error
Add a local endpoint and install associated local route
func (*Vxlan) AddVtepPort ¶
Add virtual tunnel end point. This is mainly used for mapping remote vtep IP to ofp port number.
func (*Vxlan) MacRouteAdd ¶
Mac route add rpc call from master
func (*Vxlan) MacRouteDel ¶
Mac route delete rpc call from master
func (*Vxlan) MasterAdded ¶
Handle new master added event
func (*Vxlan) PacketRcvd ¶
Handle incoming packet
func (*Vxlan) RemoveLocalEndpoint ¶
Remove local endpoint
func (*Vxlan) RemoveVlan ¶
Remove a vlan
func (*Vxlan) RemoveVtepPort ¶
Remove a VTEP port
func (*Vxlan) SwitchConnected ¶
Handle switch connected notification
func (*Vxlan) SwitchDisconnected ¶
Handle switch disconnected notification
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
** Copyright 2014 Cisco Systems Inc.
|
** Copyright 2014 Cisco Systems Inc. |
** Copyright 2014 Cisco Systems Inc.
|
** Copyright 2014 Cisco Systems Inc. |