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.
** 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
- func BuildGarpPkt(ip net.IP, mac net.HardwareAddr, vlanID uint16) *openflow13.PacketOut
- func DstGroupMetadata(groupId int) (uint64, uint64)
- func ParseCIDR(cidrStr string) (string, uint, error)
- func ParseIPAddrMaskString(ipAddr string) (*net.IP, *net.IP, error)
- func SrcGroupMetadata(groupId int) (uint64, uint64)
- func Vrfmetadata(vrfid uint16) (uint64, uint64)
- type EndpointInfo
- type OfnetAgent
- func (self *OfnetAgent) AddBgp(routerIP string, As string, neighborAs string, peer string) error
- func (self *OfnetAgent) AddLocalEndpoint(endpoint EndpointInfo) error
- func (self *OfnetAgent) AddLocalProtoRoute(path *OfnetProtoRouteInfo)
- func (self *OfnetAgent) AddMaster(masterInfo *OfnetNode, ret *bool) error
- func (self *OfnetAgent) AddNetwork(vlanId uint16, vni uint32, Gw string, Vrf string) error
- func (self *OfnetAgent) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *OfnetAgent) AddUplink(portNo uint32) error
- func (self *OfnetAgent) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *OfnetAgent) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *OfnetAgent) Delete() error
- func (self *OfnetAgent) DeleteBgp() error
- func (self *OfnetAgent) DeleteLocalProtoRoute(path *OfnetProtoRouteInfo)
- func (self *OfnetAgent) DummyRpc(arg *string, ret *bool) error
- func (self *OfnetAgent) EndpointAdd(epreg *OfnetEndpoint, ret *bool) error
- func (self *OfnetAgent) EndpointDel(epreg *OfnetEndpoint, ret *bool) error
- func (self *OfnetAgent) GetRouterInfo() *OfnetProtoRouterInfo
- 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) RemoveNetwork(vlanId uint16, vni uint32, Gw string, Vrf string) error
- func (self *OfnetAgent) RemoveUplink(portNo uint32) error
- func (self *OfnetAgent) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *OfnetAgent) SvcProviderUpdate(svcName string, providers []string)
- func (self *OfnetAgent) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *OfnetAgent) SwitchDisconnected(sw *ofctrl.OFSwitch)
- func (self *OfnetAgent) WaitForSwitchConnection()
- type OfnetBgp
- func (self *OfnetBgp) AddLocalProtoRoute(pathInfo *OfnetProtoRouteInfo) error
- func (self *OfnetBgp) AddProtoNeighbor(neighborInfo *OfnetProtoNeighborInfo) error
- func (self *OfnetBgp) DeleteLocalProtoRoute(pathInfo *OfnetProtoRouteInfo) error
- func (self *OfnetBgp) DeleteProtoNeighbor() error
- func (self *OfnetBgp) GetRouterInfo() *OfnetProtoRouterInfo
- func (self *OfnetBgp) ModifyProtoRib(path interface{})
- func (self *OfnetBgp) StartProtoServer(routerInfo *OfnetProtoRouterInfo) error
- func (self *OfnetBgp) StopProtoServer() error
- type OfnetDatapath
- type OfnetEndpoint
- type OfnetMaster
- func (self *OfnetMaster) AddRule(rule *OfnetPolicyRule) error
- func (self *OfnetMaster) DelRule(rule *OfnetPolicyRule) error
- func (self *OfnetMaster) Delete() error
- func (self *OfnetMaster) EndpointAdd(ep *OfnetEndpoint, ret *bool) error
- func (self *OfnetMaster) EndpointDel(ep *OfnetEndpoint, ret *bool) error
- func (self *OfnetMaster) MakeDummyRpcCall() error
- func (self *OfnetMaster) RegisterNode(hostInfo *OfnetNode, ret *bool) error
- type OfnetNode
- type OfnetPolicyRule
- type OfnetProto
- type OfnetProtoNeighborInfo
- type OfnetProtoRouteInfo
- type OfnetProtoRouterInfo
- type OfnetVrfInfo
- type PolicyAgent
- func (self *PolicyAgent) AddEndpoint(endpoint *OfnetEndpoint) error
- func (self *PolicyAgent) AddRule(rule *OfnetPolicyRule, ret *bool) error
- func (self *PolicyAgent) DelEndpoint(endpoint *OfnetEndpoint) error
- func (self *PolicyAgent) DelRule(rule *OfnetPolicyRule, ret *bool) error
- func (self *PolicyAgent) InitTables(nextTblId uint8) error
- func (self *PolicyAgent) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *PolicyAgent) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type PolicyRule
- type PortSpec
- type Providers
- type ServiceProxy
- func (proxy *ServiceProxy) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (proxy *ServiceProxy) DelEndpoint(endpoint *OfnetEndpoint)
- func (proxy *ServiceProxy) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (proxy *ServiceProxy) HandlePkt(pkt *ofctrl.PacketIn)
- func (proxy *ServiceProxy) InitDNATTable(nextIDdNAT uint8) error
- func (proxy *ServiceProxy) InitSNATTable(nextIDsNAT uint8) error
- func (proxy *ServiceProxy) ProviderUpdate(svcName string, providers []string)
- func (proxy *ServiceProxy) SwitchConnected(sw *ofctrl.OFSwitch)
- func (proxy *ServiceProxy) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type ServiceSpec
- type Vlan
- type VlanBridge
- func (vl *VlanBridge) AddEndpoint(endpoint *OfnetEndpoint) error
- func (vl *VlanBridge) AddLocalEndpoint(endpoint OfnetEndpoint) error
- func (vl *VlanBridge) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (vl *VlanBridge) AddUplink(portNo uint32) error
- func (vl *VlanBridge) AddVlan(vlanID uint16, vni uint32, vrf string) error
- func (vl *VlanBridge) AddVtepPort(portNo uint32, remoteIP net.IP) error
- func (vl *VlanBridge) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (vl *VlanBridge) MasterAdded(master *OfnetNode) error
- func (vl *VlanBridge) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (vl *VlanBridge) RemoveEndpoint(endpoint *OfnetEndpoint) error
- func (vl *VlanBridge) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
- func (vl *VlanBridge) RemoveUplink(portNo uint32) error
- func (vl *VlanBridge) RemoveVlan(vlanID uint16, vni uint32, vrf string) error
- func (vl *VlanBridge) RemoveVtepPort(portNo uint32, remoteIP net.IP) error
- func (vl *VlanBridge) SvcProviderUpdate(svcName string, providers []string)
- func (vl *VlanBridge) SwitchConnected(sw *ofctrl.OFSwitch)
- func (vl *VlanBridge) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type Vlrouter
- func (self *Vlrouter) AddEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vlrouter) AddLocalEndpoint(endpoint OfnetEndpoint) error
- func (self *Vlrouter) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *Vlrouter) AddUplink(portNo uint32) error
- func (self *Vlrouter) AddVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vlrouter) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vlrouter) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *Vlrouter) MasterAdded(master *OfnetNode) error
- func (self *Vlrouter) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *Vlrouter) RemoveEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vlrouter) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
- func (self *Vlrouter) RemoveUplink(portNo uint32) error
- func (self *Vlrouter) RemoveVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vlrouter) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (self *Vlrouter) SvcProviderUpdate(svcName string, providers []string)
- func (self *Vlrouter) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *Vlrouter) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type Vrouter
- func (self *Vrouter) AddEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vrouter) AddLocalEndpoint(endpoint OfnetEndpoint) error
- func (vr *Vrouter) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (vr *Vrouter) AddUplink(portNo uint32) error
- func (self *Vrouter) AddVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vrouter) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (vr *Vrouter) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *Vrouter) MasterAdded(master *OfnetNode) error
- func (self *Vrouter) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *Vrouter) RemoveEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vrouter) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
- func (vr *Vrouter) RemoveUplink(portNo uint32) error
- func (self *Vrouter) RemoveVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vrouter) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (vr *Vrouter) SvcProviderUpdate(svcName string, providers []string)
- func (self *Vrouter) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *Vrouter) SwitchDisconnected(sw *ofctrl.OFSwitch)
- type Vxlan
- func (self *Vxlan) AddEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vxlan) AddLocalEndpoint(endpoint OfnetEndpoint) error
- func (vx *Vxlan) AddSvcSpec(svcName string, spec *ServiceSpec) error
- func (vx *Vxlan) AddUplink(portNo uint32) error
- func (self *Vxlan) AddVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vxlan) AddVtepPort(portNo uint32, remoteIp net.IP) error
- func (vx *Vxlan) DelSvcSpec(svcName string, spec *ServiceSpec) error
- func (self *Vxlan) MasterAdded(master *OfnetNode) error
- func (self *Vxlan) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
- func (self *Vxlan) RemoveEndpoint(endpoint *OfnetEndpoint) error
- func (self *Vxlan) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
- func (vx *Vxlan) RemoveUplink(portNo uint32) error
- func (self *Vxlan) RemoveVlan(vlanId uint16, vni uint32, vrf string) error
- func (self *Vxlan) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
- func (vx *Vxlan) SvcProviderUpdate(svcName string, providers []string)
- func (self *Vxlan) SwitchConnected(sw *ofctrl.OFSwitch)
- func (self *Vxlan) SwitchDisconnected(sw *ofctrl.OFSwitch)
Constants ¶
const ( VLAN_TBL_ID = 1 SRV_PROXY_DNAT_TBL_ID = 2 DST_GRP_TBL_ID = 3 POLICY_TBL_ID = 4 SRV_PROXY_SNAT_TBL_ID = 5 IP_TBL_ID = 6 MAC_DEST_TBL_ID = 7 )
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 FLOW_POLICY_PRIORITY_OFFSET = 10 // Priority offset for policy rules
const METADATA_RX_VTEP = 0x1
const OFNET_AGENT_VLAN_PORT = 9010
const OFNET_AGENT_VXLAN_PORT = 9002
const OFNET_MASTER_PORT = 9001
Default port numbers
const TCP_FLAG_ACK = 0x10
const TCP_FLAG_SYN = 0x2
const VXLAN_GARP_SUPPORTED = false
Variables ¶
This section is empty.
Functions ¶
func BuildGarpPkt ¶
func BuildGarpPkt(ip net.IP, mac net.HardwareAddr, vlanID uint16) *openflow13.PacketOut
BuildGarpPkt builds a Gratuitous ARP packet
func DstGroupMetadata ¶
DstGroupMetadata returns metadata for dst group
func ParseIPAddrMaskString ¶
ParseIPAddrMaskString Parse IP addr string
func SrcGroupMetadata ¶
SrcGroupMetadata returns metadata for src group
func Vrfmetadata ¶
Types ¶
type EndpointInfo ¶
type EndpointInfo struct { PortNo uint32 EndpointGroup int MacAddr net.HardwareAddr Vlan uint16 IpAddr net.IP Vrf string }
local End point information
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(bridgeName string, dpName string, localIp net.IP, rpcPort uint16, ovsPort uint16, routerInfo ...string) (*OfnetAgent, error)
Create a new Ofnet agent and initialize it
routerInfo[0] -> Uplink nexthop interface
func (*OfnetAgent) AddLocalEndpoint ¶
func (self *OfnetAgent) AddLocalEndpoint(endpoint EndpointInfo) error
Add a local endpoint. This takes ofp port number, mac address, vlan , VrfId and IP address of the port.
func (*OfnetAgent) AddLocalProtoRoute ¶
func (self *OfnetAgent) AddLocalProtoRoute(path *OfnetProtoRouteInfo)
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) AddNetwork ¶
Add a Network. This is mainly used for mapping vlan id to Vxlan VNI and add gateway for network
func (*OfnetAgent) AddSvcSpec ¶
func (self *OfnetAgent) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds a service spec to proxy
func (*OfnetAgent) AddUplink ¶
func (self *OfnetAgent) AddUplink(portNo uint32) error
AddUplink adds an uplink to the switch
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) DelSvcSpec ¶
func (self *OfnetAgent) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec removes a service spec from proxy
func (*OfnetAgent) DeleteBgp ¶
func (self *OfnetAgent) DeleteBgp() error
func (*OfnetAgent) DeleteLocalProtoRoute ¶
func (self *OfnetAgent) DeleteLocalProtoRoute(path *OfnetProtoRouteInfo)
func (*OfnetAgent) EndpointAdd ¶
func (self *OfnetAgent) EndpointAdd(epreg *OfnetEndpoint, ret *bool) error
Add remote endpoint RPC call from master
func (*OfnetAgent) EndpointDel ¶
func (self *OfnetAgent) EndpointDel(epreg *OfnetEndpoint, ret *bool) error
Delete remote endpoint RPC call from master
func (*OfnetAgent) GetRouterInfo ¶
func (self *OfnetAgent) GetRouterInfo() *OfnetProtoRouterInfo
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) RemoveNetwork ¶
Remove a vlan from datapath
func (*OfnetAgent) RemoveUplink ¶
func (self *OfnetAgent) RemoveUplink(portNo uint32) error
RemoveUplink remove an uplink to the switch
func (*OfnetAgent) RemoveVtepPort ¶
func (self *OfnetAgent) RemoveVtepPort(portNo uint32, remoteIp net.IP) error
Remove a VTEP port
func (*OfnetAgent) SvcProviderUpdate ¶
func (self *OfnetAgent) SvcProviderUpdate(svcName string, providers []string)
SvcProviderUpdate Service Proxy Back End update
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
func (*OfnetAgent) WaitForSwitchConnection ¶
func (self *OfnetAgent) WaitForSwitchConnection()
WaitForSwitchConnection wait till switch connects
type OfnetBgp ¶
func NewOfnetBgp ¶
func NewOfnetBgp(agent *OfnetAgent, routerInfo []string) *OfnetBgp
Create a new vlrouter instance
func (*OfnetBgp) AddLocalProtoRoute ¶
func (self *OfnetBgp) AddLocalProtoRoute(pathInfo *OfnetProtoRouteInfo) error
AddLocalProtoRoute is used to add local endpoint to the protocol RIB
func (*OfnetBgp) AddProtoNeighbor ¶
func (self *OfnetBgp) AddProtoNeighbor(neighborInfo *OfnetProtoNeighborInfo) error
AddProtoNeighbor adds bgp neighbor
func (*OfnetBgp) DeleteLocalProtoRoute ¶
func (self *OfnetBgp) DeleteLocalProtoRoute(pathInfo *OfnetProtoRouteInfo) error
DeleteLocalProtoRoute withdraws local endpoints from protocol RIB
func (*OfnetBgp) DeleteProtoNeighbor ¶
DeleteProtoNeighbor deletes bgp neighbor for the host
func (*OfnetBgp) GetRouterInfo ¶
func (self *OfnetBgp) GetRouterInfo() *OfnetProtoRouterInfo
GetRouterInfo returns the configured RouterInfo
func (*OfnetBgp) ModifyProtoRib ¶
func (self *OfnetBgp) ModifyProtoRib(path interface{})
func (*OfnetBgp) StartProtoServer ¶
func (self *OfnetBgp) StartProtoServer(routerInfo *OfnetProtoRouterInfo) error
Bgp serve routine does the following: 1) Creates inb01 router port 2) Add MyBgp endpoint 3) Kicks off routines to monitor route updates and peer state
func (*OfnetBgp) StopProtoServer ¶
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 OfnetEndpoint) error // Remove a local endpoint from forwarding DB RemoveLocalEndpoint(endpoint OfnetEndpoint) error // Add a remote endpoint to forwarding DB AddEndpoint(endpoint *OfnetEndpoint) error // Remove a remote endpoint from forwarding DB RemoveEndpoint(endpoint *OfnetEndpoint) 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, vrf string) error // Remove a vlan RemoveVlan(vlanId uint16, vni uint32, vrf string) error //Add uplink port AddUplink(portNo uint32) error //Delete uplink port RemoveUplink(portNo uint32) error // Add a service spec to proxy AddSvcSpec(svcName string, spec *ServiceSpec) error // Remove a service spec from proxy DelSvcSpec(svcName string, spec *ServiceSpec) error // Service Proxy Back End update SvcProviderUpdate(svcName string, providers []string) }
Interface implemented by each datapath
type OfnetEndpoint ¶
type OfnetEndpoint struct { EndpointID string // Unique identifier for the endpoint EndpointType string // Type of the endpoint "internal", "external" or "externalRoute" EndpointGroup int // Endpoint group identifier for policies. IpAddr net.IP // IP address of the end point IpMask net.IP // IP mask for the end point Vrf string // IP address namespace MacAddrStr string // Mac address of the end point(in string format) Vlan uint16 // Vlan Id for the endpoint Vni uint32 // Vxlan VNI OriginatorIp net.IP // Originating switch PortNo uint32 // Port number on originating switch Timestamp time.Time // Timestamp of the last event }
OfnetEndpoint has info about an endpoint
type OfnetMaster ¶
type OfnetMaster struct {
// contains filtered or unexported fields
}
Ofnet master state
func (*OfnetMaster) AddRule ¶
func (self *OfnetMaster) AddRule(rule *OfnetPolicyRule) error
AddRule adds a new rule to the policyDB
func (*OfnetMaster) DelRule ¶
func (self *OfnetMaster) DelRule(rule *OfnetPolicyRule) error
DelRule removes a rule from policy DB
func (*OfnetMaster) EndpointAdd ¶
func (self *OfnetMaster) EndpointAdd(ep *OfnetEndpoint, ret *bool) error
Add an Endpoint
func (*OfnetMaster) EndpointDel ¶
func (self *OfnetMaster) EndpointDel(ep *OfnetEndpoint, ret *bool) error
Delete an Endpoint
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
type OfnetPolicyRule ¶
type OfnetPolicyRule struct { RuleId string // Unique identifier for the rule Priority int // Priority for the rule (1..100. 100 is highest) SrcEndpointGroup int // Source endpoint group DstEndpointGroup int // Destination endpoint group SrcIpAddr string // source IP addrss and mask DstIpAddr string // Destination IP address and mask IpProtocol uint8 // IP protocol number SrcPort uint16 // Source port DstPort uint16 // destination port TcpFlags string // TCP flags to match: syn || syn,ack || ack || syn,!ack || !syn,ack; Action string // rule action: 'accept' or 'deny' }
OfnetPolicyRule has security rule to be installed
type OfnetProto ¶
type OfnetProto interface { //Create a protocol server StartProtoServer(routerInfo *OfnetProtoRouterInfo) error StopProtoServer() error //Add a Protocol Neighbor AddProtoNeighbor(neighborInfo *OfnetProtoNeighborInfo) error //Delete a Protocol Neighbor DeleteProtoNeighbor() error //Get Protocol router info GetRouterInfo() *OfnetProtoRouterInfo //Add Local Route AddLocalProtoRoute(path *OfnetProtoRouteInfo) error //Delete Local Route DeleteLocalProtoRoute(path *OfnetProtoRouteInfo) error //Modify protocol Rib (Could be used for testing) ModifyProtoRib(path interface{}) }
Interface implemented by each control protocol.
type OfnetProtoNeighborInfo ¶
type OfnetProtoRouteInfo ¶
type OfnetProtoRouteInfo struct { ProtocolType string // type of protocol // contains filtered or unexported fields }
type OfnetProtoRouterInfo ¶
type OfnetVrfInfo ¶
type PolicyAgent ¶
type PolicyAgent struct { Rules map[string]*PolicyRule // rules database DstGrpFlow map[string]*ofctrl.Flow // FLow entries for dst group lookup // contains filtered or unexported fields }
PolicyAgent is an instance of a policy agent
func NewPolicyAgent ¶
func NewPolicyAgent(agent *OfnetAgent, rpcServ *rpc.Server) *PolicyAgent
NewPolicyMgr Creates a new policy manager
func (*PolicyAgent) AddEndpoint ¶
func (self *PolicyAgent) AddEndpoint(endpoint *OfnetEndpoint) error
AddEndpoint adds an endpoint to dst group lookup
func (*PolicyAgent) AddRule ¶
func (self *PolicyAgent) AddRule(rule *OfnetPolicyRule, ret *bool) error
AddRule adds a security rule to policy table
func (*PolicyAgent) DelEndpoint ¶
func (self *PolicyAgent) DelEndpoint(endpoint *OfnetEndpoint) error
DelEndpoint deletes an endpoint from dst group lookup
func (*PolicyAgent) DelRule ¶
func (self *PolicyAgent) DelRule(rule *OfnetPolicyRule, ret *bool) error
DelRule deletes a security rule from policy table
func (*PolicyAgent) InitTables ¶
func (self *PolicyAgent) InitTables(nextTblId uint8) error
InitTables initializes policy table on the switch
func (*PolicyAgent) SwitchConnected ¶
func (self *PolicyAgent) SwitchConnected(sw *ofctrl.OFSwitch)
Handle switch connected notification
func (*PolicyAgent) SwitchDisconnected ¶
func (self *PolicyAgent) SwitchDisconnected(sw *ofctrl.OFSwitch)
Handle switch disconnected notification
type PolicyRule ¶
type PolicyRule struct {
// contains filtered or unexported fields
}
PolicyRule has info about single rule
type PortSpec ¶
type PortSpec struct { Protocol string SvcPort uint16 // advertised port ProvPort uint16 // actual port of provider }
PortSpec defines protocol/port info required to host the service
type Providers ¶
type Providers struct {
// contains filtered or unexported fields
}
Providers holds the current providers of a given service
type ServiceProxy ¶
type ServiceProxy struct {
// contains filtered or unexported fields
}
ServiceProxy is an instance of a service proxy
func NewServiceProxy ¶
func NewServiceProxy() *ServiceProxy
NewServiceProxy Creates a new service proxy
func (*ServiceProxy) AddSvcSpec ¶
func (proxy *ServiceProxy) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds or updates a service spec.
func (*ServiceProxy) DelEndpoint ¶
func (proxy *ServiceProxy) DelEndpoint(endpoint *OfnetEndpoint)
DelEndpoint handles an endpoint delete
func (*ServiceProxy) DelSvcSpec ¶
func (proxy *ServiceProxy) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec deletes a service spec.
func (*ServiceProxy) HandlePkt ¶
func (proxy *ServiceProxy) HandlePkt(pkt *ofctrl.PacketIn)
HandlePkt processes a received pkt from a matching table entry
func (*ServiceProxy) InitDNATTable ¶
func (proxy *ServiceProxy) InitDNATTable(nextIDdNAT uint8) error
InitDNATTable initializes the dNAT table
func (*ServiceProxy) InitSNATTable ¶
func (proxy *ServiceProxy) InitSNATTable(nextIDsNAT uint8) error
InitSNATTable initializes the sNAT table
func (*ServiceProxy) ProviderUpdate ¶
func (proxy *ServiceProxy) ProviderUpdate(svcName string, providers []string)
ProviderUpdate updates the list of providers of the service
func (*ServiceProxy) SwitchConnected ¶
func (proxy *ServiceProxy) SwitchConnected(sw *ofctrl.OFSwitch)
Handle switch connected notification
func (*ServiceProxy) SwitchDisconnected ¶
func (proxy *ServiceProxy) SwitchDisconnected(sw *ofctrl.OFSwitch)
Handle switch disconnected notification
type ServiceSpec ¶
ServiceSpec defines a service to be proxied
type Vlan ¶
type Vlan struct { Vni uint32 // Vxlan VNI // contains filtered or unexported fields }
Vlan info
type VlanBridge ¶
type VlanBridge struct {
// contains filtered or unexported fields
}
VlanBridge has Vlan state.
func NewVlanBridge ¶
func NewVlanBridge(agent *OfnetAgent, rpcServ *rpc.Server) *VlanBridge
NewVlanBridge Create a new vlan instance
func (*VlanBridge) AddEndpoint ¶
func (vl *VlanBridge) AddEndpoint(endpoint *OfnetEndpoint) error
AddEndpoint Add an endpoint to the datapath
func (*VlanBridge) AddLocalEndpoint ¶
func (vl *VlanBridge) AddLocalEndpoint(endpoint OfnetEndpoint) error
AddLocalEndpoint Add a local endpoint and install associated local route
func (*VlanBridge) AddSvcSpec ¶
func (vl *VlanBridge) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds a service spec to proxy
func (*VlanBridge) AddUplink ¶
func (vl *VlanBridge) AddUplink(portNo uint32) error
AddUplink adds an uplink to the switch
func (*VlanBridge) AddVlan ¶
func (vl *VlanBridge) AddVlan(vlanID uint16, vni uint32, vrf string) error
AddVlan Add a vlan.
func (*VlanBridge) AddVtepPort ¶
func (vl *VlanBridge) AddVtepPort(portNo uint32, remoteIP net.IP) error
AddVtepPort Add virtual tunnel end point.
func (*VlanBridge) DelSvcSpec ¶
func (vl *VlanBridge) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec removes a service spec from proxy
func (*VlanBridge) MasterAdded ¶
func (vl *VlanBridge) MasterAdded(master *OfnetNode) error
MasterAdded Handle new master added event
func (*VlanBridge) PacketRcvd ¶
func (vl *VlanBridge) PacketRcvd(sw *ofctrl.OFSwitch, pkt *ofctrl.PacketIn)
PacketRcvd Handle incoming packet
func (*VlanBridge) RemoveEndpoint ¶
func (vl *VlanBridge) RemoveEndpoint(endpoint *OfnetEndpoint) error
RemoveEndpoint removes an endpoint from the datapath
func (*VlanBridge) RemoveLocalEndpoint ¶
func (vl *VlanBridge) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
RemoveLocalEndpoint Remove local endpoint
func (*VlanBridge) RemoveUplink ¶
func (vl *VlanBridge) RemoveUplink(portNo uint32) error
RemoveUplink remove an uplink to the switch
func (*VlanBridge) RemoveVlan ¶
func (vl *VlanBridge) RemoveVlan(vlanID uint16, vni uint32, vrf string) error
RemoveVlan Remove a vlan
func (*VlanBridge) RemoveVtepPort ¶
func (vl *VlanBridge) RemoveVtepPort(portNo uint32, remoteIP net.IP) error
RemoveVtepPort Remove a VTEP port
func (*VlanBridge) SvcProviderUpdate ¶
func (vl *VlanBridge) SvcProviderUpdate(svcName string, providers []string)
SvcProviderUpdate Service Proxy Back End update
func (*VlanBridge) SwitchConnected ¶
func (vl *VlanBridge) SwitchConnected(sw *ofctrl.OFSwitch)
SwitchConnected Handle switch connected notification
func (*VlanBridge) SwitchDisconnected ¶
func (vl *VlanBridge) SwitchDisconnected(sw *ofctrl.OFSwitch)
SwitchDisconnected Handle switch disconnected notification
type Vlrouter ¶
type Vlrouter struct {
// contains filtered or unexported fields
}
Vlrouter state. One Vlrouter instance exists on each host
func NewVlrouter ¶
func NewVlrouter(agent *OfnetAgent, rpcServ *rpc.Server) *Vlrouter
Create a new vlrouter instance
func (*Vlrouter) AddEndpoint ¶
func (self *Vlrouter) AddEndpoint(endpoint *OfnetEndpoint) error
AddEndpoint does the following :
1)Adds a remote endpoint and associated flows to OVS 2)The remotes routes can be 3 endpoint types :
a) internal - json rpc based learning from peer netplugins/ofnetagents in the cluster b) external - remote endpoint learn via BGP c) external-bgp - endpoint of BGP peer
func (*Vlrouter) AddLocalEndpoint ¶
func (self *Vlrouter) AddLocalEndpoint(endpoint OfnetEndpoint) error
func (*Vlrouter) AddSvcSpec ¶
func (self *Vlrouter) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds a service spec to proxy
func (*Vlrouter) AddVtepPort ¶
func (*Vlrouter) DelSvcSpec ¶
func (self *Vlrouter) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec removes a service spec from proxy
func (*Vlrouter) MasterAdded ¶
Handle new master added event
func (*Vlrouter) PacketRcvd ¶
Handle incoming packet
func (*Vlrouter) RemoveEndpoint ¶
func (self *Vlrouter) RemoveEndpoint(endpoint *OfnetEndpoint) error
RemoveEndpoint removes an endpoint from the datapath
func (*Vlrouter) RemoveLocalEndpoint ¶
func (self *Vlrouter) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
RemoveLocalEndpoint does the following
1) Removes the local endpoint and associated flows from OVS 2) Withdraws the route from BGP RIB
func (*Vlrouter) RemoveUplink ¶
func (*Vlrouter) RemoveVlan ¶
Remove a vlan
func (*Vlrouter) RemoveVtepPort ¶
Remove a VTEP port
func (*Vlrouter) SvcProviderUpdate ¶
SvcProviderUpdate Service Proxy Back End update
func (*Vlrouter) SwitchConnected ¶
Handle switch connected notification
func (*Vlrouter) SwitchDisconnected ¶
Handle switch disconnected notification
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) AddEndpoint ¶
func (self *Vrouter) AddEndpoint(endpoint *OfnetEndpoint) error
AddEndpoint Add an endpoint to the datapath
func (*Vrouter) AddLocalEndpoint ¶
func (self *Vrouter) AddLocalEndpoint(endpoint OfnetEndpoint) error
Add a local endpoint and install associated local route
func (*Vrouter) AddSvcSpec ¶
func (vr *Vrouter) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds a service spec to proxy
func (*Vrouter) AddVtepPort ¶
Add virtual tunnel end point. This is mainly used for mapping remote vtep IP to ofp port number.
func (*Vrouter) DelSvcSpec ¶
func (vr *Vrouter) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec removes a service spec from proxy
func (*Vrouter) MasterAdded ¶
Handle new master added event
func (*Vrouter) PacketRcvd ¶
Handle incoming packet
func (*Vrouter) RemoveEndpoint ¶
func (self *Vrouter) RemoveEndpoint(endpoint *OfnetEndpoint) error
RemoveEndpoint removes an endpoint from the datapath
func (*Vrouter) RemoveLocalEndpoint ¶
func (self *Vrouter) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
Remove local endpoint
func (*Vrouter) RemoveUplink ¶
RemoveUplink remove an uplink to the switch
func (*Vrouter) RemoveVlan ¶
Remove a vlan
func (*Vrouter) RemoveVtepPort ¶
Remove a VTEP port
func (*Vrouter) SvcProviderUpdate ¶
SvcProviderUpdate Service Proxy Back End update
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) AddEndpoint ¶
func (self *Vxlan) AddEndpoint(endpoint *OfnetEndpoint) error
AddEndpoint Add an endpoint to the datapath
func (*Vxlan) AddLocalEndpoint ¶
func (self *Vxlan) AddLocalEndpoint(endpoint OfnetEndpoint) error
Add a local endpoint and install associated local route
func (*Vxlan) AddSvcSpec ¶
func (vx *Vxlan) AddSvcSpec(svcName string, spec *ServiceSpec) error
AddSvcSpec adds a service spec to proxy
func (*Vxlan) AddVtepPort ¶
Add virtual tunnel end point. This is mainly used for mapping remote vtep IP to ofp port number.
func (*Vxlan) DelSvcSpec ¶
func (vx *Vxlan) DelSvcSpec(svcName string, spec *ServiceSpec) error
DelSvcSpec removes a service spec from proxy
func (*Vxlan) MasterAdded ¶
Handle new master added event
func (*Vxlan) PacketRcvd ¶
Handle incoming packet
func (*Vxlan) RemoveEndpoint ¶
func (self *Vxlan) RemoveEndpoint(endpoint *OfnetEndpoint) error
RemoveEndpoint removes an endpoint from the datapath
func (*Vxlan) RemoveLocalEndpoint ¶
func (self *Vxlan) RemoveLocalEndpoint(endpoint OfnetEndpoint) error
Remove local endpoint
func (*Vxlan) RemoveUplink ¶
RemoveUplink remove an uplink to the switch
func (*Vxlan) RemoveVlan ¶
Remove a vlan
func (*Vxlan) RemoveVtepPort ¶
Remove a VTEP port
func (*Vxlan) SvcProviderUpdate ¶
SvcProviderUpdate Service Proxy Back End update
func (*Vxlan) SwitchConnected ¶
Handle switch connected notification
func (*Vxlan) SwitchDisconnected ¶
Handle switch disconnected notification
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Godeps
|
|
_workspace/src/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
|
Package logrus is a structured logger for Go, completely API compatible with the standard library logger. |
_workspace/src/github.com/cenkalti/hub
Package hub provides a simple event dispatcher for publish/subscribe pattern.
|
Package hub provides a simple event dispatcher for publish/subscribe pattern. |
_workspace/src/github.com/cenkalti/rpc2
Package rpc2 provides bi-directional RPC client and server similar to net/rpc.
|
Package rpc2 provides bi-directional RPC client and server similar to net/rpc. |
_workspace/src/github.com/cenkalti/rpc2/jsonrpc
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc2 package.
|
Package jsonrpc implements a JSON-RPC ClientCodec and ServerCodec for the rpc2 package. |
_workspace/src/github.com/golang/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
|
Package proto converts data structures to and from the wire format of protocol buffers. |
_workspace/src/github.com/golang/protobuf/proto/proto3_proto
Package proto3_proto is a generated protocol buffer package.
|
Package proto3_proto is a generated protocol buffer package. |
_workspace/src/github.com/google/gopacket
Package gopacket provides packet decoding for the Go language.
|
Package gopacket provides packet decoding for the Go language. |
_workspace/src/github.com/google/gopacket/afpacket
Package afpacket provides Go bindings for MMap'd AF_PACKET socket reading.
|
Package afpacket provides Go bindings for MMap'd AF_PACKET socket reading. |
_workspace/src/github.com/google/gopacket/bytediff
Package bytediff provides a simple diff utility for looking at differences in byte slices.
|
Package bytediff provides a simple diff utility for looking at differences in byte slices. |
_workspace/src/github.com/google/gopacket/dumpcommand
Package dumpcommand implements a run function for pfdump and pcapdump with many similar flags/features to tcpdump.
|
Package dumpcommand implements a run function for pfdump and pcapdump with many similar flags/features to tcpdump. |
_workspace/src/github.com/google/gopacket/examples/arpscan
arpscan implements ARP scanning of all interfaces' local networks using gopacket and its subpackages.
|
arpscan implements ARP scanning of all interfaces' local networks using gopacket and its subpackages. |
_workspace/src/github.com/google/gopacket/examples/bidirectional
This binary provides an example of connecting up bidirectional streams from the unidirectional streams provided by gopacket/tcpassembly.
|
This binary provides an example of connecting up bidirectional streams from the unidirectional streams provided by gopacket/tcpassembly. |
_workspace/src/github.com/google/gopacket/examples/bytediff
This binary shows how to display byte differences to users via the bytediff library.
|
This binary shows how to display byte differences to users via the bytediff library. |
_workspace/src/github.com/google/gopacket/examples/httpassembly
This binary provides sample code for using the gopacket TCP assembler and TCP stream reader.
|
This binary provides sample code for using the gopacket TCP assembler and TCP stream reader. |
_workspace/src/github.com/google/gopacket/examples/pcapdump
The pcapdump binary implements a tcpdump-like command line tool with gopacket using pcap as a backend data collection mechanism.
|
The pcapdump binary implements a tcpdump-like command line tool with gopacket using pcap as a backend data collection mechanism. |
_workspace/src/github.com/google/gopacket/examples/pfdump
The pfdump binary implements a tcpdump-like command line tool with gopacket using pfring as a backend data collection mechanism.
|
The pfdump binary implements a tcpdump-like command line tool with gopacket using pfring as a backend data collection mechanism. |
_workspace/src/github.com/google/gopacket/examples/statsassembly
This binary provides sample code for using the gopacket TCP assembler raw, without the help of the tcpreader library.
|
This binary provides sample code for using the gopacket TCP assembler raw, without the help of the tcpreader library. |
_workspace/src/github.com/google/gopacket/examples/synscan
synscan implements a TCP syn scanner on top of pcap.
|
synscan implements a TCP syn scanner on top of pcap. |
_workspace/src/github.com/google/gopacket/examples/util
Package util provides shared utilities for all gopacket examples.
|
Package util provides shared utilities for all gopacket examples. |
_workspace/src/github.com/google/gopacket/ip4defrag
Package ip4defrag implements a IPv4 defragmenter
|
Package ip4defrag implements a IPv4 defragmenter |
_workspace/src/github.com/google/gopacket/layers
Package layers provides decoding layers for many common protocols.
|
Package layers provides decoding layers for many common protocols. |
_workspace/src/github.com/google/gopacket/macs
Package macs provides an in-memory mapping of all valid Ethernet MAC address prefixes to their associated organization.
|
Package macs provides an in-memory mapping of all valid Ethernet MAC address prefixes to their associated organization. |
_workspace/src/github.com/google/gopacket/pcap
Package pcap allows users of gopacket to read packets off the wire or from pcap files.
|
Package pcap allows users of gopacket to read packets off the wire or from pcap files. |
_workspace/src/github.com/google/gopacket/pcap/gopacket_benchmark
This benchmark reads in file <tempdir>/gopacket_benchmark.pcap and measures the time it takes to decode all packets from that file.
|
This benchmark reads in file <tempdir>/gopacket_benchmark.pcap and measures the time it takes to decode all packets from that file. |
_workspace/src/github.com/google/gopacket/pcapgo
Package pcapgo provides some native PCAP support, not requiring C libpcap to be installed.
|
Package pcapgo provides some native PCAP support, not requiring C libpcap to be installed. |
_workspace/src/github.com/google/gopacket/pfring
Package pfring wraps the PF_RING C library for Go.
|
Package pfring wraps the PF_RING C library for Go. |
_workspace/src/github.com/google/gopacket/routing
Package routing provides a very basic but mostly functional implementation of a routing table for IPv4/IPv6 addresses.
|
Package routing provides a very basic but mostly functional implementation of a routing table for IPv4/IPv6 addresses. |
_workspace/src/github.com/google/gopacket/tcpassembly
Package tcpassembly provides TCP stream re-assembly.
|
Package tcpassembly provides TCP stream re-assembly. |
_workspace/src/github.com/google/gopacket/tcpassembly/tcpreader
Package tcpreader provides an implementation for tcpassembly.Stream which presents the caller with an io.Reader for easy processing.
|
Package tcpreader provides an implementation for tcpassembly.Stream which presents the caller with an io.Reader for easy processing. |
_workspace/src/github.com/jainvipin/bitset
Package bitset implements bitsets, a mapping between non-negative integers and boolean values.
|
Package bitset implements bitsets, a mapping between non-negative integers and boolean values. |
_workspace/src/github.com/osrg/gobgp/api
Package gobgpapi is a generated protocol buffer package.
|
Package gobgpapi is a generated protocol buffer package. |
_workspace/src/github.com/vishvananda/netlink
Package netlink provides a simple library for netlink.
|
Package netlink provides a simple library for netlink. |
_workspace/src/github.com/vishvananda/netlink/nl
Package nl has low level primitives for making Netlink calls.
|
Package nl has low level primitives for making Netlink calls. |
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
|
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes. |
_workspace/src/golang.org/x/net/context/ctxhttp
Package ctxhttp provides helper functions for performing context-aware HTTP requests.
|
Package ctxhttp provides helper functions for performing context-aware HTTP requests. |
_workspace/src/golang.org/x/net/http2
Package http2 implements the HTTP/2 protocol.
|
Package http2 implements the HTTP/2 protocol. |
_workspace/src/golang.org/x/net/http2/h2i
The h2i command is an interactive HTTP/2 console.
|
The h2i command is an interactive HTTP/2 console. |
_workspace/src/golang.org/x/net/http2/hpack
Package hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2.
|
Package hpack implements HPACK, a compression format for efficiently representing HTTP header fields in the context of HTTP/2. |
_workspace/src/golang.org/x/net/internal/timeseries
Package timeseries implements a time series structure for stats collection.
|
Package timeseries implements a time series structure for stats collection. |
_workspace/src/golang.org/x/net/trace
Package trace implements tracing of requests and long-lived objects.
|
Package trace implements tracing of requests and long-lived objects. |
_workspace/src/golang.org/x/sys/unix
Package unix contains an interface to the low-level operating system primitives.
|
Package unix contains an interface to the low-level operating system primitives. |
_workspace/src/google.golang.org/grpc
Package grpc implements an RPC system called gRPC.
|
Package grpc implements an RPC system called gRPC. |
_workspace/src/google.golang.org/grpc/benchmark
Package benchmark implements the building blocks to setup end-to-end gRPC benchmarks.
|
Package benchmark implements the building blocks to setup end-to-end gRPC benchmarks. |
_workspace/src/google.golang.org/grpc/benchmark/grpc_testing
Package grpc_testing is a generated protocol buffer package.
|
Package grpc_testing is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/codes
Package codes defines the canonical error codes used by gRPC.
|
Package codes defines the canonical error codes used by gRPC. |
_workspace/src/google.golang.org/grpc/credentials
Package credentials implements various credentials supported by gRPC library, which encapsulate all the state needed by a client to authenticate with a server and make various assertions, e.g., about the client's identity, role, or whether it is authorized to make a particular call.
|
Package credentials implements various credentials supported by gRPC library, which encapsulate all the state needed by a client to authenticate with a server and make various assertions, e.g., about the client's identity, role, or whether it is authorized to make a particular call. |
_workspace/src/google.golang.org/grpc/credentials/oauth
Package oauth implements gRPC credentials using OAuth.
|
Package oauth implements gRPC credentials using OAuth. |
_workspace/src/google.golang.org/grpc/examples/helloworld/helloworld
Package helloworld is a generated protocol buffer package.
|
Package helloworld is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/examples/route_guide/client
Package main implements a simple gRPC client that demonstrates how to use gRPC-Go libraries to perform unary, client streaming, server streaming and full duplex RPCs.
|
Package main implements a simple gRPC client that demonstrates how to use gRPC-Go libraries to perform unary, client streaming, server streaming and full duplex RPCs. |
_workspace/src/google.golang.org/grpc/examples/route_guide/routeguide
Package routeguide is a generated protocol buffer package.
|
Package routeguide is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/examples/route_guide/server
Package main implements a simple gRPC server that demonstrates how to use gRPC-Go libraries to perform unary, client streaming, server streaming and full duplex RPCs.
|
Package main implements a simple gRPC server that demonstrates how to use gRPC-Go libraries to perform unary, client streaming, server streaming and full duplex RPCs. |
_workspace/src/google.golang.org/grpc/grpclog
Package grpclog defines logging for grpc.
|
Package grpclog defines logging for grpc. |
_workspace/src/google.golang.org/grpc/grpclog/glogger
Package glogger defines glog-based logging for grpc.
|
Package glogger defines glog-based logging for grpc. |
_workspace/src/google.golang.org/grpc/health
Package health provides some utility functions to health-check a server.
|
Package health provides some utility functions to health-check a server. |
_workspace/src/google.golang.org/grpc/health/grpc_health_v1alpha
Package grpc_health_v1alpha is a generated protocol buffer package.
|
Package grpc_health_v1alpha is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/interop/grpc_testing
Package grpc_testing is a generated protocol buffer package.
|
Package grpc_testing is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/metadata
Package metadata define the structure of the metadata supported by gRPC library.
|
Package metadata define the structure of the metadata supported by gRPC library. |
_workspace/src/google.golang.org/grpc/naming
Package naming defines the naming API and related data structures for gRPC.
|
Package naming defines the naming API and related data structures for gRPC. |
_workspace/src/google.golang.org/grpc/test/codec_perf
Package codec_perf is a generated protocol buffer package.
|
Package codec_perf is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/test/grpc_testing
Package grpc_testing is a generated protocol buffer package.
|
Package grpc_testing is a generated protocol buffer package. |
_workspace/src/google.golang.org/grpc/transport
Package transport defines and implements message oriented communication channel to complete various transactions (e.g., an RPC).
|
Package transport defines and implements message oriented communication channel to complete various transactions (e.g., an RPC). |
_workspace/src/gopkg.in/tomb.v2
The tomb package handles clean goroutine tracking and termination.
|
The tomb package handles clean goroutine tracking and termination. |
** Copyright 2014 Cisco Systems Inc.
|
** Copyright 2014 Cisco Systems Inc. |
** Copyright 2014 Cisco Systems Inc.
|
** Copyright 2014 Cisco Systems Inc. |