Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }