public void BgpHeaderDecodes(string value) { var data = Convert.FromBase64String(value); var bgpHeader = new BgpHeader(); bgpHeader.Decode(data, 0); Assert.Equal(bgpHeader.Length, 45); Assert.Equal(bgpHeader.Type, BgpMessageType.Open); }
public static BgpMessage Create(byte[] data, int offset) { var bgpHeaderLength = 19; var msgHeader = new BgpHeader(data, offset); BgpMessage msg; switch (msgHeader.Type) { case BgpMessageType.Open: msg = new BgpOpenMessage(); break; case BgpMessageType.Update: msg = new BgpUpdateMessage(); break; case BgpMessageType.Notification: msg = new BgpNotificationMessage(); break; case BgpMessageType.Keepalive: msg = new BgpKeepAliveMessage(); break; case BgpMessageType.RouteRefresh: msg = new BgpRouteRefreshMessage(); break; default: return(null); } msg.Header = msgHeader; offset += bgpHeaderLength; msg.Decode(data, offset); return(msg); }