public override void Decode(byte[] data, int offset) { if ((PeerHeader.Flags & (1 << 7)) != 0) { var ipBytes = new byte[16]; Array.Copy(data, offset, ipBytes, 0, 4); LocalAddress = new IPAddress(ipBytes); } else { var ipBytes = new byte[4]; Array.Copy(data, offset + 12, ipBytes, 0, 4); LocalAddress = new IPAddress(ipBytes); } offset += 16; LocalPort = EndianBitConverter.Big.ToUInt16(data, offset); offset += 2; RemotePort = EndianBitConverter.Big.ToUInt16(data, offset); offset += 2; SentOpenMessage = BgpMessage.Create(data, offset) as BgpOpenMessage; offset += SentOpenMessage?.Header.Length ?? 0; ReceivedOpenMessage = BgpMessage.Create(data, offset) as BgpOpenMessage; }
public override void Decode(byte[] data, int offset) { BgpUpdate = BgpMessage.Create(data, offset) as BgpUpdateMessage; }