Documentation ¶
Index ¶
- Constants
- Variables
- func HexDecode(pkt []byte) []byte
- func InterfaceIDToPortNo(intfID uint32, intfType string) uint32
- type DefaultExecutor
- type Executor
- type FlowAddSpy
- type FlowKey
- type Message
- type MessageType
- type NniIndicationMessage
- type NniPort
- type OltDevice
- func (o OltDevice) ActivateOnu(context context.Context, onu *openolt.Onu) (*openolt.Empty, error)
- func (o OltDevice) CollectStatistics(context.Context, *openolt.Empty) (*openolt.Empty, error)
- func (s OltDevice) CreateTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*openolt.Empty, error)
- func (s OltDevice) CreateTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
- func (o OltDevice) DeactivateOnu(context.Context, *openolt.Onu) (*openolt.Empty, error)
- func (o OltDevice) DeleteOnu(_ context.Context, onu *openolt.Onu) (*openolt.Empty, error)
- func (o OltDevice) DisableOlt(context.Context, *openolt.Empty) (*openolt.Empty, error)
- func (o OltDevice) DisablePonIf(_ context.Context, intf *openolt.Interface) (*openolt.Empty, error)
- func (o *OltDevice) Enable(stream openolt.Openolt_EnableIndicationServer) error
- func (o *OltDevice) EnableIndication(_ *openolt.Empty, stream openolt.Openolt_EnableIndicationServer) error
- func (o OltDevice) EnablePonIf(_ context.Context, intf *openolt.Interface) (*openolt.Empty, error)
- func (o OltDevice) FindOnuById(intfId uint32, onuId uint32) (*Onu, error)
- func (o OltDevice) FindOnuByMacAddress(mac net.HardwareAddr) (*Onu, error)
- func (o OltDevice) FindOnuBySn(serialNumber string) (*Onu, error)
- func (o OltDevice) FlowAdd(ctx context.Context, flow *openolt.Flow) (*openolt.Empty, error)
- func (o OltDevice) FlowRemove(_ context.Context, flow *openolt.Flow) (*openolt.Empty, error)
- func (o OltDevice) GetDeviceInfo(context.Context, *openolt.Empty) (*openolt.DeviceInfo, error)
- func (o *OltDevice) GetOnuByFlowId(flowId uint32) (*Onu, error)
- func (o OltDevice) GetOnuInfo(context context.Context, packet *openolt.Onu) (*openolt.OnuIndication, error)
- func (o OltDevice) GetPonById(id uint32) (*PonPort, error)
- func (o OltDevice) GetPonIf(context context.Context, packet *openolt.Interface) (*openolt.IntfIndication, error)
- func (o OltDevice) HeartbeatCheck(context.Context, *openolt.Empty) (*openolt.Heartbeat, error)
- func (o *OltDevice) InitOlt() error
- func (o OltDevice) OmciMsgOut(ctx context.Context, omci_msg *openolt.OmciMsg) (*openolt.Empty, error)
- func (o OltDevice) OnuPacketOut(ctx context.Context, onuPkt *openolt.OnuPacket) (*openolt.Empty, error)
- func (o OltDevice) Reboot(context.Context, *openolt.Empty) (*openolt.Empty, error)
- func (o OltDevice) ReenableOlt(context.Context, *openolt.Empty) (*openolt.Empty, error)
- func (s OltDevice) RemoveTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*openolt.Empty, error)
- func (s OltDevice) RemoveTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
- func (o *OltDevice) RestartOLT() error
- func (o OltDevice) SendAlarmIndication(context context.Context, ind *openolt.AlarmIndication) error
- func (o *OltDevice) StopOltServer() error
- func (o OltDevice) UplinkPacketOut(context context.Context, packet *openolt.UplinkPacket) (*openolt.Empty, error)
- type OltIndicationMessage
- type OmciIndicationMessage
- type OmciMessage
- type Onu
- func (onu *Onu) DeleteFlow(key FlowKey)
- func (o *Onu) GetGemPortChan() chan bool
- func (o Onu) NewSN(oltid int, intfid uint32, onuid uint32) *openolt.SerialNumber
- func (o *Onu) ProcessOnuMessages(ctx context.Context, stream openolt.Openolt_EnableIndicationServer, ...)
- func (o *Onu) SetID(id uint32)
- func (o *Onu) Sn() string
- func (o *Onu) StartOmci(client openolt.OpenoltClient)
- type OnuDiscIndicationMessage
- type OnuFlowUpdateMessage
- type OnuIndicationMessage
- type OnuPacketMessage
- type OperState
- type PacketMessage
- type PonIndicationMessage
- type PonPort
- type Runnable
Constants ¶
const ( Default mode = iota OnlyONU OnlyPON Both )
Constants for Controlled Activation modes
Variables ¶
var ControlledActivationModes = map[string]mode{ "default": Default, "only-onu": OnlyONU, "only-pon": OnlyPON, "both": Both, }
ControlledActivationModes maps string to int value of mode
Functions ¶
func InterfaceIDToPortNo ¶ added in v0.0.19
InterfaceIDToPortNo converts InterfaceID to voltha PortID Refer openolt adapter code(master) voltha-openolt-adapter/adaptercore/olt_platform.go: IntfIDToPortNo()
Types ¶
type DefaultExecutor ¶ added in v0.0.2
type DefaultExecutor struct{}
type FlowAddSpy ¶ added in v0.0.5
type Message ¶
type Message struct { Type MessageType Data interface{} }
type MessageType ¶
type MessageType int
const ( OltIndication MessageType = 0 NniIndication MessageType = 1 PonIndication MessageType = 2 OnuDiscIndication MessageType = 3 OnuIndication MessageType = 4 OMCI MessageType = 5 FlowAdd MessageType = 6 FlowRemoved MessageType = 18 StartEAPOL MessageType = 7 StartDHCP MessageType = 8 OnuPacketOut MessageType = 9 // BBR messages OmciIndication MessageType = 10 // this are OMCI messages going from the OLT to VOLTHA SendEapolFlow MessageType = 11 SendDhcpFlow MessageType = 12 OnuPacketIn MessageType = 13 //IGMP IGMPMembershipReportV2 MessageType = 14 // Version 2 Membership Report (JOIN) IGMPLeaveGroup MessageType = 15 // Leave Group AlarmIndication MessageType = 16 // message data is an openolt.AlarmIndication IGMPMembershipReportV3 MessageType = 17 // Version 3 Membership Report )
func (MessageType) String ¶
func (m MessageType) String() string
type NniIndicationMessage ¶
type NniPort ¶
type OltDevice ¶
type OltDevice struct { sync.Mutex // BBSIM Internals ID int SerialNumber string NumNni int NumPon int NumOnuPerPon int InternalState *fsm.FSM Flows map[FlowKey]openolt.Flow Delay int ControlledActivation mode EventChannel chan common.Event PublishEvents bool PortStatsInterval int Pons []*PonPort Nnis []*NniPort // OLT Attributes OperState *fsm.FSM OpenoltStream *openolt.Openolt_EnableIndicationServer // contains filtered or unexported fields }
func (OltDevice) ActivateOnu ¶
func (OltDevice) CollectStatistics ¶
func (OltDevice) CreateTrafficQueues ¶
func (s OltDevice) CreateTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*openolt.Empty, error)
func (OltDevice) CreateTrafficSchedulers ¶
func (s OltDevice) CreateTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
func (OltDevice) DeactivateOnu ¶
func (OltDevice) DisableOlt ¶
func (OltDevice) DisablePonIf ¶
func (*OltDevice) Enable ¶
func (o *OltDevice) Enable(stream openolt.Openolt_EnableIndicationServer) error
Enable implements the OpenOLT EnableIndicationServer functionality
func (*OltDevice) EnableIndication ¶
func (OltDevice) EnablePonIf ¶
func (OltDevice) FindOnuById ¶ added in v0.0.2
returns an ONU with a given interface/Onu Id
func (OltDevice) FindOnuByMacAddress ¶ added in v0.0.2
func (o OltDevice) FindOnuByMacAddress(mac net.HardwareAddr) (*Onu, error)
returns an ONU with a given Mac Address
func (OltDevice) FindOnuBySn ¶ added in v0.0.2
returns an ONU with a given Serial Number
func (OltDevice) FlowRemove ¶
FlowRemove request from VOLTHA
func (OltDevice) GetDeviceInfo ¶
func (*OltDevice) GetOnuByFlowId ¶ added in v0.2.5
func (OltDevice) GetOnuInfo ¶
func (OltDevice) GetPonById ¶ added in v0.0.2
func (OltDevice) HeartbeatCheck ¶
func (OltDevice) OmciMsgOut ¶
func (OltDevice) OnuPacketOut ¶
func (OltDevice) ReenableOlt ¶
func (OltDevice) RemoveTrafficQueues ¶
func (s OltDevice) RemoveTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*openolt.Empty, error)
func (OltDevice) RemoveTrafficSchedulers ¶
func (s OltDevice) RemoveTrafficSchedulers(context context.Context, trafficSchedulers *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
func (*OltDevice) RestartOLT ¶ added in v0.0.7
func (OltDevice) SendAlarmIndication ¶ added in v0.0.12
assumes caller has properly formulated an openolt.AlarmIndication
func (*OltDevice) StopOltServer ¶ added in v0.0.8
StopOltServer stops the OpenOLT grpc server
func (OltDevice) UplinkPacketOut ¶
type OltIndicationMessage ¶
type OltIndicationMessage struct {
OperState OperState
}
type OmciIndicationMessage ¶ added in v0.0.2
type OmciIndicationMessage struct { OnuSN *openolt.SerialNumber OnuID uint32 OmciInd *openolt.OmciIndication }
type OmciMessage ¶
type OmciMessage struct { OnuSN *openolt.SerialNumber OnuID uint32 // contains filtered or unexported fields }
type Onu ¶
type Onu struct { ID uint32 PonPortID uint32 PonPort *PonPort STag int CTag int Auth bool // automatically start EAPOL if set to true Dhcp bool // automatically start DHCP if set to true HwAddress net.HardwareAddr InternalState *fsm.FSM DiscoveryRetryDelay time.Duration // this is the time between subsequent Discovery Indication DiscoveryDelay time.Duration // this is the time to send the first Discovery Indication Backoff *backoff.Backoff // ONU State // PortNo comes with flows and it's used when sending packetIndications, // There is one PortNo per UNI Port, for now we're only storing the first one // FIXME add support for multiple UNIs (each UNI has a different PortNo) PortNo uint32 GemPortAdded bool EapolFlowReceived bool DhcpFlowReceived bool Flows []FlowKey FlowIds []uint32 // keep track of the flows we currently have in the ONU OperState *fsm.FSM SerialNumber *openolt.SerialNumber Channel chan Message // this Channel is to track state changes OMCI messages, EAPOL and DHCP packets GemPortChannels []chan bool // this channels are used to notify everyone that is interested that a GemPort has been added DoneChannel chan bool // this channel is used to signal once the onu is complete (when the struct is used by BBR) TrafficSchedulers *tech_profile.TrafficSchedulers // contains filtered or unexported fields }
func (*Onu) DeleteFlow ¶ added in v0.0.18
DeleteFlow method search and delete flowKey from the onu flows slice
func (*Onu) GetGemPortChan ¶ added in v0.2.4
func (*Onu) ProcessOnuMessages ¶ added in v0.0.2
func (o *Onu) ProcessOnuMessages(ctx context.Context, stream openolt.Openolt_EnableIndicationServer, client openolt.OpenoltClient)
ProcessOnuMessages starts indication channel for each ONU
func (*Onu) StartOmci ¶ added in v0.0.2
func (o *Onu) StartOmci(client openolt.OpenoltClient)
TODO move this method in responders/omcisim
type OnuFlowUpdateMessage ¶
type OnuIndicationMessage ¶
type OnuIndicationMessage struct { OperState OperState PonPortID uint32 OnuID uint32 OnuSN *openolt.SerialNumber }
type OnuPacketMessage ¶ added in v0.0.2
type OnuPacketMessage struct { IntfId uint32 OnuId uint32 Packet gopacket.Packet Type packetHandlers.PacketType }
type PacketMessage ¶
type PonIndicationMessage ¶
type PonPort ¶
type PonPort struct { // BBSIM Internals ID uint32 NumOnu int Onus []*Onu Olt *OltDevice PacketCount uint64 InternalState *fsm.FSM // PON Attributes OperState *fsm.FSM Type string }
func CreatePonPort ¶ added in v0.0.10
CreatePonPort creates pon port object
func (PonPort) GetNumOfActiveOnus ¶ added in v0.0.19
GetNumOfActiveOnus returns number of active ONUs for PON port
func (PonPort) GetOnuBySn ¶ added in v0.0.2
func (p PonPort) GetOnuBySn(sn *openolt.SerialNumber) (*Onu, error)