Documentation ¶
Index ¶
- func HexDecode(pkt []byte) []byte
- type DefaultExecutor
- type DyingGaspIndicationMessage
- type Executor
- type FlowAddSpy
- 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, *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
- func (o OltDevice) DeactivateOnu(context.Context, *openolt.Onu) (*openolt.Empty, error)
- func (o OltDevice) DeleteOnu(context.Context, *openolt.Onu) (*openolt.Empty, error)
- func (o OltDevice) DisableOlt(context.Context, *openolt.Empty) (*openolt.Empty, error)
- func (o OltDevice) DisablePonIf(context.Context, *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, *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, *openolt.Flow) (*openolt.Empty, error)
- func (o OltDevice) GetDeviceInfo(context.Context, *openolt.Empty) (*openolt.DeviceInfo, 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, *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
- func (o *OltDevice) RestartOLT() 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
- type OnuDiscIndicationMessage
- type OnuFlowUpdateMessage
- type OnuIndicationMessage
- type OnuPacketMessage
- type OperState
- type PacketMessage
- type PonIndicationMessage
- type PonPort
- type Runnable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 FlowUpdate MessageType = 6 StartEAPOL MessageType = 7 StartDHCP MessageType = 8 OnuPacketOut MessageType = 9 DyingGaspIndication MessageType = 10 // BBR messages OmciIndication MessageType = 11 // this are OMCI messages going from the OLT to VOLTHA SendEapolFlow MessageType = 12 SendDhcpFlow MessageType = 13 OnuPacketIn MessageType = 14 )
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 Delay int Pons []*PonPort Nnis []*NniPort // OLT Attributes OperState *fsm.FSM // 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, *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 ¶
func (OltDevice) GetDeviceInfo ¶
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, *tech_profile.TrafficSchedulers) (*openolt.Empty, error)
func (*OltDevice) RestartOLT ¶ added in v0.0.7
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 // 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 PortNo uint32 DhcpFlowReceived bool OperState *fsm.FSM SerialNumber *openolt.SerialNumber Channel chan Message // this Channel is to track state changes OMCI messages, EAPOL and DHCP packets HasGemPort bool DoneChannel chan bool // this channel is used to signal once the onu is complete (when the struct is used by BBR) // contains filtered or unexported fields }
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 // PON Attributes OperState *fsm.FSM Type string }
func CreatePonPort ¶ added in v0.0.10
CreatePonPort creates pon port object
func (PonPort) GetOnuBySn ¶ added in v0.0.2
func (p PonPort) GetOnuBySn(sn *openolt.SerialNumber) (*Onu, error)
Click to show internal directories.
Click to hide internal directories.