[VOL-2778] Introducing Service definition in order to support the TT workflow
Change-Id: Ib171502e8940b5d0b219620a4503f7095d376d7a
diff --git a/internal/bbsim/responders/eapol/eapol.go b/internal/bbsim/responders/eapol/eapol.go
index cd0606e..5595d5b 100644
--- a/internal/bbsim/responders/eapol/eapol.go
+++ b/internal/bbsim/responders/eapol/eapol.go
@@ -38,16 +38,8 @@
var eapolVersion uint8 = 1
var GetGemPortId = omci.GetGemPortId
-func sendEapolPktIn(msg bbsim.ByteMsg, portNo uint32, stream openolt.Openolt_EnableIndicationServer) {
+func sendEapolPktIn(msg bbsim.ByteMsg, portNo uint32, gemid uint32, stream bbsim.Stream) {
// FIXME unify sendDHCPPktIn and sendEapolPktIn methods
- gemid, err := omci.GetGemPortId(msg.IntfId, msg.OnuId)
- if err != nil {
- eapolLogger.WithFields(log.Fields{
- "OnuId": msg.OnuId,
- "IntfId": msg.IntfId,
- }).Errorf("Can't retrieve GemPortId: %s", err)
- return
- }
log.WithFields(log.Fields{
"OnuId": msg.OnuId,
@@ -137,8 +129,8 @@
options := gopacket.SerializeOptions{}
ethernetLayer := &layers.Ethernet{
- SrcMAC: net.HardwareAddr{0x2e, 0x60, 0x70, 0x13, byte(intfId), byte(onuId)},
- DstMAC: net.HardwareAddr{0x01, 0x80, 0xC2, 0x00, 0x00, 0x03},
+ SrcMAC: net.HardwareAddr{0x2e, 0x60, byte(0), byte(intfId), byte(onuId), byte(0)},
+ DstMAC: net.HardwareAddr{0x2e, 0x60, byte(0), byte(intfId), byte(onuId), byte(0)},
EthernetType: layers.EthernetTypeEAPOL,
}
@@ -197,22 +189,7 @@
return nil
}
-func SendEapStart(onuId uint32, ponPortId uint32, serialNumber string, portNo uint32, macAddress net.HardwareAddr, onuStateMachine *fsm.FSM, stream bbsim.Stream) error {
-
- // send the packet (hacked together)
- gemId, err := GetGemPortId(ponPortId, onuId)
- if err != nil {
- eapolLogger.WithFields(log.Fields{
- "OnuId": onuId,
- "IntfId": ponPortId,
- "OnuSn": serialNumber,
- }).Errorf("Can't retrieve GemPortId: %s", err)
-
- if err := updateAuthFailed(onuId, ponPortId, serialNumber, onuStateMachine); err != nil {
- return err
- }
- return err
- }
+func SendEapStart(onuId uint32, ponPortId uint32, serialNumber string, portNo uint32, macAddress net.HardwareAddr, gemPort uint32, stateMachine *fsm.FSM, stream bbsim.Stream) error {
// TODO use createEAPOLPkt
buffer := gopacket.NewSerializeBuffer()
@@ -236,13 +213,13 @@
PktInd: &openolt.PacketIndication{
IntfType: "pon",
IntfId: ponPortId,
- GemportId: uint32(gemId),
+ GemportId: gemPort,
Pkt: msg,
PortNo: portNo,
},
}
- err = stream.Send(&openolt.Indication{Data: data})
+ err := stream.Send(&openolt.Indication{Data: data})
if err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
@@ -250,7 +227,7 @@
"OnuSn": serialNumber,
}).Errorf("Can't send EapStart Message: %s", err)
- if err := updateAuthFailed(onuId, ponPortId, serialNumber, onuStateMachine); err != nil {
+ if err := updateAuthFailed(onuId, ponPortId, serialNumber, stateMachine); err != nil {
return err
}
return err
@@ -263,7 +240,7 @@
"PortNo": portNo,
}).Debugf("Sent EapStart packet")
- if err := onuStateMachine.Event("eap_start_sent"); err != nil {
+ if err := stateMachine.Event("eap_start_sent"); err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
@@ -274,7 +251,7 @@
return nil
}
-func HandleNextPacket(onuId uint32, ponPortId uint32, serialNumber string, portNo uint32, onuStateMachine *fsm.FSM, pkt gopacket.Packet, stream openolt.Openolt_EnableIndicationServer, client openolt.OpenoltClient) {
+func HandleNextPacket(onuId uint32, ponPortId uint32, gemPortId uint32, serialNumber string, portNo uint32, stateMachine *fsm.FSM, pkt gopacket.Packet, stream bbsim.Stream, client openolt.OpenoltClient) {
eap, eapErr := extractEAP(pkt)
@@ -335,14 +312,14 @@
Bytes: pkt,
}
- sendEapolPktIn(msg, portNo, stream)
+ sendEapolPktIn(msg, portNo, gemPortId, stream)
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
"OnuSn": serialNumber,
"PortNo": portNo,
}).Debugf("Sent EAPIdentityResponse packet")
- if err := onuStateMachine.Event("eap_response_identity_sent"); err != nil {
+ if err := stateMachine.Event("eap_response_identity_sent"); err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
@@ -383,14 +360,14 @@
Bytes: pkt,
}
- sendEapolPktIn(msg, portNo, stream)
+ sendEapolPktIn(msg, portNo, gemPortId, stream)
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
"OnuSn": serialNumber,
"PortNo": portNo,
}).Debugf("Sent EAPChallengeResponse packet")
- if err := onuStateMachine.Event("eap_response_challenge_sent"); err != nil {
+ if err := stateMachine.Event("eap_response_challenge_sent"); err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
@@ -417,7 +394,7 @@
"OnuSn": serialNumber,
}).Infof("Sent EAP Success packet")
- if err := onuStateMachine.Event("send_dhcp_flow"); err != nil {
+ if err := stateMachine.Event("send_dhcp_flow"); err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,
@@ -431,7 +408,7 @@
"OnuSn": serialNumber,
"PortNo": portNo,
}).Debugf("Received EAPSuccess packet")
- if err := onuStateMachine.Event("eap_response_success_received"); err != nil {
+ if err := stateMachine.Event("eap_response_success_received"); err != nil {
eapolLogger.WithFields(log.Fields{
"OnuId": onuId,
"IntfId": ponPortId,