blob: 2a2df920f1de8161ae9276dbf4d194f6744f6f1b [file] [log] [blame]
/*
* Copyright 2018-present Open Networking Foundation
* 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.
*/
package main
import (
"log"
"golang.org/x/net/context"
"./openolt"
"time"
)
// gRPC Service
func (s *server) DisableOlt(c context.Context, empty *openolt.Empty) (*openolt.Empty, error){
log.Printf("OLT receives DisableOLT()\n")
return new(openolt.Empty), nil
}
func (s *server) ReenableOlt(c context.Context, empty *openolt.Empty)(*openolt.Empty, error){
log.Printf("OLT receives Reenable()\n")
return new(openolt.Empty), nil
}
func (s *server) ActivateOnu(c context.Context, onu *openolt.Onu) (*openolt.Empty, error){
log.Printf("OLT receives ActivateONU()\n")
result := validateONU(*onu, s.onus)
if result == true {
log.Printf("ONU %d activated succesufully.\n", onu.OnuId)
s.onus[onu.IntfId][onu.OnuId].internalState = ONU_ACTIVATED
//log.Printf("ActivateOnu(): %v", s.onus)
}
return new(openolt.Empty), nil
}
func (s *server) DeactivateOnu(c context.Context, onu *openolt.Onu) (*openolt.Empty, error){
log.Printf("OLT receives DeactivateONU()\n")
return new(openolt.Empty), nil
}
func (s *server) DeleteOnu(c context.Context, onu *openolt.Onu) (*openolt.Empty, error){
log.Printf("OLT receives DeleteONU()\n")
return new(openolt.Empty), nil
}
func (s *server)OmciMsgOut(c context.Context, msg *openolt.OmciMsg)(*openolt.Empty, error){
//log.Printf("OLT %d receives OmciMsgOut to IF %v (ONU-ID: %v): %v.\n", s.olt.ID, msg.IntfId, msg.OnuId, msg.Pkt)
log.Printf("OLT %d receives OmciMsgOut to IF %v (ONU-ID: %v).\n", s.olt.ID, msg.IntfId, msg.OnuId)
return new(openolt.Empty), nil
}
func (s *server) OnuPacketOut(c context.Context, packet *openolt.OnuPacket)(*openolt.Empty, error){
log.Printf("OLT %d receives OnuPacketOut ().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) UplinkPacketOut(c context.Context, packet *openolt.UplinkPacket)(*openolt.Empty, error){
log.Printf("OLT %d receives UplinkPacketOut().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) FlowAdd(c context.Context, flow *openolt.Flow)(*openolt.Empty, error){
log.Printf("OLT %d receives FlowAdd().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) HeartbeatCheck(c context.Context, empty *openolt.Empty) (*openolt.Heartbeat, error){
log.Printf("OLT %d receives HeartbeatCheck().\n", s.olt.ID)
signature := new(openolt.Heartbeat)
signature.HeartbeatSignature = s.olt.HeartbeatSignature
return signature, nil
}
func (s *server) EnablePonIf(c context.Context, intf *openolt.Interface) (*openolt.Empty, error){
log.Printf("OLT %d receives EnablePonIf().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) DisablePonIf(c context.Context, intf *openolt.Interface) (*openolt.Empty, error){
log.Printf("OLT %d receives DisablePonIf().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) Reboot(c context.Context, empty *openolt.Empty,) (*openolt.Empty, error){
log.Printf("OLT %d receives Reboot ().\n", s.olt.ID)
return new(openolt.Empty), nil
}
func (s *server) EnableIndication(empty *openolt.Empty, stream openolt.Openolt_EnableIndicationServer) error {
log.Printf("OLT receives EnableInd.\n")
if err := activateOLT(s, stream); err != nil {
log.Printf("Failed to activate OLT: %v\n", err)
return err
}
// Infinite loop TODO: This should be a queue processing.
for {
time.Sleep(1 * time.Second)
}
return nil
}