عن المشروع

تنفذ الحزمة bgp بروتوكول البوابة الحدودية الإصدار 4 (BGP-4) كما هو موصوف في RFC 4271 وRFCs ذات الصلة، وتغطي تنسيق الشبكة، وآلة الحالة المحدودة، ودورة حياة الاقتران. وهي مرخصة بموجب MIT ومكتوبة بلغة Go. المكتبة منظمة في طبقات، كل منها قابلة للاستخدام دون الطبقات الأعلى منها: - أنواع الرسائل مثل Open وUpdate وNotification، مع ترميزها الثنائي. - Conn، الذي يؤطر الرسائل عبر اتصال. - FSM، الذي يشغل آلة الحالة المحدودة وفق RFC 4271 عبر Conn: محاولة جلسة واحدة لكل استدعاء Connect، مع تسليم قيم مستعارة بدون نسخ إلى المعالجات. - Peer، الذي يلف FSM بحلقة إعادة محاولة ومعالجات تكون قيمها مملوكة بالكامل. - Server، الذي ينسق العديد من Peers، ويقبل الاتصالات على مستمعين مشتركين. من المتوقع أن يستخدم معظم المتصلين Peer أو Server؛ FSM هي الطبقة المتقدمة للمتصلين الذين يحتاجون إلى تسليم بدون نسخ أو سياسة إعادة محاولة مخصصة. يعرض README مثالاً لمتحدث يعلن عن مسار واحد إلى جار ويسجل المسارات المستلمة. يملك Run دورة حياة الاتصال: الاتصال، وتبادل OPEN، ورسائل keepalive، وإعادة محاولة الجلسات الميتة حتى يتم إلغاء السياق. إلغاء السياق يرسل Cease / Administrative Shutdown. تغطي أمثلة الحزمة IPv6 متعدد البروتوكولات، والمكدس المزدوج، والنظائر السلبية، وتكويناً معززاً مواجهاً للإنترنت. النطاق محدود عمداً: لا يوجد جدول توجيه ولا محرك سياسات، بشكل دائم. الجلسة المنشأة تسلم رسائل UPDATE المستلمة إلى المتصل، الذي يملك جميع قرارات التوجيه. يتصل RIB عند طبقة Peer عبر معالجاتها، حيث يربط الطرق في كل PeerConfig ويستنزف Adj-RIB-Out الخاص به عبر مسار الإرسال. المشاريع المصاحبة مثل مراقبة BMP (RFC 7854) وحيوية BFD (RFC 5880) تُبنى على نفس الواجهات وتوجد في مستودعات منفصلة. دعم المنصات: طبقات الرسائل وConn وFSM وPeer وServer هي Go محمولة. خيارات مقبس TCP التي يحتاجها متحدث BGP إنتاجي، مثل TCP-MD5 وGTSM وDSCP، مدعومة فقط على Linux؛ في أماكن أخرى يفشل تعيينها بخطأ يلف errors.ErrUnsupported. يتم الاختبار مقابل بيانات توجيه إنترنت حقيقية وأجهزة توجيه حقيقية: تختبر اختبارات المجموعة تحليل كل رسالة من أرشيف مجمع المسارات وكل مسار من جدول إنترنت كامل، وتتطلب رحلة ترميز ذهاباً وإياباً بايت ببايت؛ تغطي أهداف fuzz تحليل الرسائل وتحليل السمات وتأطير الاتصال، مع بذور من المجموعة؛ ويشغل إطار التشغيل البيني جلسات حية مقابل FRRouting، تغطي الإنشاء والتفاوض على القدرات وتبادل المسارات وTCP-MD5 وGTSM.