Documentation ¶
Overview ¶
Copyright 2021 Antrea Authors
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 Controller
- type GroupMemberStatus
- type IGMPSnooper
- type MRouteClient
- type RouteInterface
- type Socket
- func (s *Socket) AddMrouteEntry(src net.IP, group net.IP, iif uint16, oifVIFs []uint16) (err error)
- func (s *Socket) AllocateVIFs(interfaceNames []string, startVIF uint16) ([]uint16, error)
- func (s *Socket) DelMrouteEntry(src net.IP, group net.IP, iif uint16) (err error)
- func (s *Socket) FlushMRoute()
- func (s *Socket) GetFD() int
- func (s *Socket) MulticastInterfaceJoinMgroup(mgroup net.IP, ifaceIP net.IP, ifaceName string) error
- func (s *Socket) MulticastInterfaceLeaveMgroup(mgroup net.IP, ifaceIP net.IP, ifaceName string) error
Constants ¶
View Source
const ( GroupNameIndexName = "groupName" MulticastFlag = "multicast" MulticastRecvBufferSize = 128 )
View Source
const ( IGMPMsgNocache = multicastsyscall.IGMPMSG_NOCACHE MaxVIFs = multicastsyscall.MAXVIFS SizeofIgmpmsg = multicastsyscall.SizeofIgmpmsg )
View Source
const (
IGMPProtocolNumber = 2
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func NewMulticastController ¶
func NewMulticastController(ofClient openflow.Client, nodeConfig *config.NodeConfig, ifaceStore interfacestore.InterfaceStore, multicastSocket RouteInterface, multicastInterfaces sets.String, ovsBridgeClient ovsconfig.OVSBridgeClient) *Controller
func (*Controller) Initialize ¶
func (c *Controller) Initialize() error
func (*Controller) Run ¶
func (c *Controller) Run(stopCh <-chan struct{})
type GroupMemberStatus ¶
type GroupMemberStatus struct {
// contains filtered or unexported fields
}
type IGMPSnooper ¶
type IGMPSnooper struct {
// contains filtered or unexported fields
}
func (*IGMPSnooper) HandlePacketIn ¶
func (s *IGMPSnooper) HandlePacketIn(pktIn *ofctrl.PacketIn) error
type MRouteClient ¶
type MRouteClient struct {
// contains filtered or unexported fields
}
MRouteClient configures static multicast route.
func (*MRouteClient) Initialize ¶
func (c *MRouteClient) Initialize() error
type RouteInterface ¶
type RouteInterface interface { // MulticastInterfaceJoinMgroup enables interface with name ifaceName and IP ifaceIP // joins multicast group IP mgroup. MulticastInterfaceJoinMgroup(mgroup net.IP, ifaceIP net.IP, ifaceName string) error // MulticastInterfaceLeaveMgroup enables interface with name ifaceName and IP ifaceIP // leaves multicast group IP mgroup. MulticastInterfaceLeaveMgroup(mgroup net.IP, ifaceIP net.IP, ifaceName string) error // AddMrouteEntry adds multicast route with specified source(src), multicast group IP(group), // inbound multicast interface(iif) and outbound multicast interfaces(oifs). AddMrouteEntry(src net.IP, group net.IP, iif uint16, oifs []uint16) (err error) // DelMrouteEntry deletes multicast route with specified source(src), multicast group IP(group), // inbound multicast interface(iif). DelMrouteEntry(src net.IP, group net.IP, iif uint16) (err error) // FlushMRoute flushes static multicast routing entries. FlushMRoute() // GetFD returns socket file descriptor. GetFD() int // AllocateVIFs allocate VIFs to interfaces, starting from startVIF. AllocateVIFs(interfaceNames []string, startVIF uint16) ([]uint16, error) }
type Socket ¶
type Socket struct {
// contains filtered or unexported fields
}
func CreateMulticastSocket ¶
func (*Socket) AddMrouteEntry ¶
func (*Socket) AllocateVIFs ¶
func (*Socket) DelMrouteEntry ¶
func (*Socket) FlushMRoute ¶
func (s *Socket) FlushMRoute()
func (*Socket) MulticastInterfaceJoinMgroup ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.