public Optical_Entry FromBytesToEntry(byte[] bytes) { Optical_Entry optical = new Optical_Entry(); optical.inPort = (ushort)((bytes[11] << 8) + bytes[10]); optical.startSlot = BitConverter.ToInt32(bytes, 0); optical.lastSlot = BitConverter.ToInt32(bytes, 4); optical.outPort = (ushort)((bytes[9] << 8) + bytes[8]); return(optical); }
public Optical_Entry FindOpticalEntry(DataStream dataStream) { Optical_Entry optEntry = null; foreach (Optical_Entry item in Optical_Table) { if (dataStream.currentPort == item.inPort && dataStream.firstFrequencySlot == item.startSlot && dataStream.lastFrequencySlot == item.lastSlot) { optEntry = item; break; } } return(optEntry); }
public void WaitForCommands() { while (true) { String data = null; // Domain będzie aktualizował te optical entry SocketToDomain.Receive(bufferForManagement);// from CC in management we have to check whether it is possible to take requested capacity Console.WriteLine("Added123"); Optical_Entry opticalEntry = null; if (Encoding.ASCII.GetString(bufferForManagement.ToList().GetRange(0, 3).ToArray()).Equals("ACK")) { Console.WriteLine("Added123456"); opticalEntry = packageHandler.FromBytesToEntry(bufferForManagement.ToList().GetRange(3, 12).ToArray()); packageHandler.Optical_Table.Add(opticalEntry); Console.WriteLine("Added"); } //Optical_Entry opticalEntry = packageHandler.FromBytesToEntry(bufferForManagement); // int k = 0; foreach (var link in linkResources) { if (link.port == opticalEntry.outPort) { for (int j = opticalEntry.startSlot; j <= opticalEntry.lastSlot; j++) { link.slots[j] = false; } break; } } //SocketToDomain.Send(Encoding.ASCII.GetBytes("G8 CONF MY M8")); // ack for Domain- odsyłamy do Domaina że j // SocketToDomain.Send(Encoding.ASCII.GetBytes("G8 CONF MY M8")); Console.WriteLine(this.Name + ": [" + DateTime.UtcNow.ToString("HH:mm:ss.fff", CultureInfo.InvariantCulture) + "] " + "I got new configuration!!!"); packageHandler.displayTables(); Console.WriteLine(this.Name + ": [" + DateTime.UtcNow.ToString("HH:mm:ss.fff", CultureInfo.InvariantCulture) + "] " + "I updated my MPLS tables! :) "); } }
public void handlePackage(DataStream dataStream) { Optical_Entry optical = FindOpticalEntry(dataStream); dataStream.currentPort = optical.outPort; }