コード例 #1
0
ファイル: OspfHandler.cs プロジェクト: davidbetz/netrouter
 public override PacketData GetBytes(IHeader header, PacketData packetData)
 {
     var ospfHeader = (OspfHeader)header;
     var currentData = new List<byte>();
     currentData.Add(ospfHeader.Version);
     currentData.Add(ospfHeader.Type);
     byte[] array = GetBytes((UInt16)(packetData.Data.Count + 24 - packetData.GetProperty<ushort>("OspfLlsDataBlockHeaderSize")));
     currentData.AddRange(array);
     currentData.AddRange(GetNotReversedBytes(ospfHeader.RouterID));
     currentData.AddRange(GetBytes(ospfHeader.AreaID));
     //currentData.AddRange(new byte[] { 1, 2 });
     //currentData.AddRange(new byte[] { 3, 4 });
     //currentData.AddRange(new byte[] { 5, 6, 7, 8 });
     //currentData.AddRange(new byte[] { 9, 0xa, 0xb, 0xc });
     currentData.AddRange(new byte[]
                          {
                              0, 0
                          });
     currentData.AddRange(new byte[]
                          {
                              0, 0
                          });
     currentData.AddRange(new byte[]
                          {
                              0, 0, 0, 0
                          });
     currentData.AddRange(new byte[]
                          {
                              0, 0, 0, 0
                          });
     currentData.AddRange(packetData.Data);
     byte[] crc = Checksum.GetCrc(currentData.ToArray());
     currentData[12] = crc[1];
     currentData[13] = crc[0];
     return packetData.UpdateData(currentData);
 }