private void HandleSnpNegotiationResponse(SignallingMessage message) { var payload = (object[])message.Payload; var snpps = (SubnetworkPointPool[])payload[0]; var nextPairOut = (SubnetworkPointPortPair)payload[1]; var pairOut = new SubnetworkPointPortPair(nextPairOut.SubnetworkPoint, snpps[0].Id); if (_clientInSnpps.ContainsKey(message.SourceClientAddress)) { OnUpdateState("[SOURCE_CLIENT_LOCATED]"); var snppIn = _clientInSnpps[message.SourceClientAddress]; var linkIn = FindLinkByEnd(snppIn); var snpIn = GenerateSnp(linkIn, message.DemandedCapacity); var pairIn = new SubnetworkPointPortPair(snpIn, snppIn.Id); InsertRow(new [] { pairIn, pairOut }); message.Payload = pairIn; } else { _recentSnpPortPairs.Add(message.SessionId, pairOut); message.Payload = pairOut; } SendSnpLinkConnectionAllocation(message); }
private void HandleSnpLinkConnectionAllocation(SignallingMessage message) { var snpps = (SubnetworkPointPool[])message.Payload; OnUpdateState($"[RECEIVED_SNPP] {snpps[0]}---{snpps[1]}"); if (_clientOutSnpps.ContainsKey(message.DestinationClientAddress)) { OnUpdateState("[DESTINATION_CLIENT_LOCATED]"); var snppOut = snpps[1]; var linkOut = FindLinkByBegin(snppOut); var snpOut = GenerateSnp(linkOut, message.DemandedCapacity); var pairOut = new SubnetworkPointPortPair(snpOut, snppOut.Id); _recentSnpPortPairs.Add(message.SessionId, pairOut); message.Payload = pairOut; SendSnpLinkConnectionAllocation(message); } else { SendSnpNegotiation(message); } }
private void SendSnpNegotiationResponse(SignallingMessage message, SubnetworkPointPortPair subnetworkPointPortPair) { message.Payload = new object[] { (SubnetworkPointPool[])message.Payload, subnetworkPointPortPair }; message.DestinationAddress = message.SourceAddress; message.DestinationControlPlaneElement = ControlPlaneElementType.LRM; SendMessage(message); }
private void HandleSnpNegotiation(SignallingMessage message) { var snpps = (SubnetworkPointPool[])message.Payload; OnUpdateState($"[RECEIVED_SNPP] {snpps[0]}---{snpps[1]}"); var pairOut = _recentSnpPortPairs[message.SessionId]; var linkIn = FindLinkByEnd(snpps[1]); var snpIn = GenerateSnp(linkIn, message.DemandedCapacity); var portIn = snpps[1].Id; var pairIn = new SubnetworkPointPortPair(snpIn, portIn); InsertRow(new [] { pairIn, pairOut }); SendSnpNegotiationResponse(message, pairIn); }