VOL-1077 added NNI port and management port distinction
Change-Id: Ie24e05aa927661bb9a227d04e565018ce5523cd6
diff --git a/ponsim/v2/core/ponsim_device.go b/ponsim/v2/core/ponsim_device.go
index 13cae92..3fc52a5 100644
--- a/ponsim/v2/core/ponsim_device.go
+++ b/ponsim/v2/core/ponsim_device.go
@@ -111,7 +111,9 @@
forwarded := 0
links := o.links[int(egressPort)]
- o.Counter.CountTxFrame(int(egressPort), len(common.GetEthernetLayer(egressFrame).Payload))
+ if int(egressPort) <= 2 && int(egressPort) > 0 {
+ o.Counter.CountTxFrame(int(egressPort), len(common.GetEthernetLayer(egressFrame).Payload))
+ }
for _, link := range links {
forwarded += 1
diff --git a/ponsim/v2/core/ponsim_olt.go b/ponsim/v2/core/ponsim_olt.go
index 34ed68a..15ca2e7 100644
--- a/ponsim/v2/core/ponsim_olt.go
+++ b/ponsim/v2/core/ponsim_olt.go
@@ -24,6 +24,7 @@
"github.com/golang/protobuf/ptypes/empty"
"github.com/google/gopacket"
"github.com/opencord/voltha/ponsim/v2/common"
+ "github.com/opencord/voltha/protos/go/openflow_13"
"github.com/opencord/voltha/protos/go/ponsim"
"github.com/sirupsen/logrus"
"google.golang.org/grpc"
@@ -122,6 +123,33 @@
}
/*
+forwardToNNI defines function to forward a packet to the NNI interface
+*/
+func (o *PonSimOltDevice) forwardToNNI() func(int, gopacket.Packet) {
+ return func(port int, frame gopacket.Packet) {
+ var err error
+ common.Logger().WithFields(logrus.Fields{
+ "device": o,
+ "port": port,
+ "frame": frame,
+ }).Debug("Forwarding packet to NNI")
+ if err = o.egressHandler.WritePacketData(frame.Data()); err != nil {
+ common.Logger().WithFields(logrus.Fields{
+ "device": o,
+ "port": port,
+ "frame": frame,
+ }).Fatal("Problem while forwarding packet to NNI")
+ } else {
+ common.Logger().WithFields(logrus.Fields{
+ "device": o,
+ "port": port,
+ "frame": frame,
+ }).Debug("Forwarded packet to NNI")
+ }
+ }
+}
+
+/*
Start performs setup operations for an OLT device
*/
func (o *PonSimOltDevice) Start(ctx context.Context) {
@@ -134,7 +162,10 @@
o.outgoing = make(chan []byte, 1)
// Add INGRESS operation
- o.AddLink(2, 0, o.forwardToLAN())
+ o.AddLink(int(openflow_13.OfpPortNo_OFPP_CONTROLLER), 0, o.forwardToLAN())
+
+ // Add Data-Plane Forwarding operation
+ o.AddLink(2, 0, o.forwardToNNI())
// Start PM counter logging
o.counterLoop = common.NewIntervalHandler(90, o.Counter.LogCounts)
@@ -344,6 +375,10 @@
o.GetOnus()[portNum] = registree
o.AddLink(1, int(portNum), o.forwardToONU(portNum))
+ common.Logger().WithFields(logrus.Fields{
+ "port": portNum,
+ "onu": onu,
+ }).Info("Connected ONU")
go o.MonitorOnu(ctx, portNum)
go o.Listen(ctx, portNum)
}