Skip to content
Permalink
Browse files

Merge pull request #2910 from opensourcerouting/doc-summerclean-20180825

protocol vs. OS docs + SMUX leftovers
  • Loading branch information...
donaldsharp committed Aug 25, 2018
2 parents 866ec83 + 086f18f commit 18d93bbb5a2d6acc791726ad6de7f11d6818d32d
@@ -154,12 +154,8 @@ override_dh_auto_install:
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*

# installing the Frr specific SNMP MIB
ifeq ($(WANT_SNMP), 1)
install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB
else
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs
endif

# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
@@ -188,12 +188,8 @@ override_dh_auto_install:
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*

# installing the Frr specific SNMP MIB
ifeq ($(WANT_SNMP), 1)
install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB
else
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs/
endif

# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
@@ -186,12 +186,8 @@ override_dh_auto_install:
mkdir -p debian/tmp/etc/frr/
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*

# installing the Frr specific SNMP MIB
ifeq ($(WANT_SNMP), 1)
install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB
else
# leftover from previously shipping SMUX client OID MIB
mkdir -p debian/tmp/usr/share/snmp/mibs/
endif

# cleaning .la files
sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la
@@ -6,3 +6,50 @@ div.body {
pre {
background-color: #e2e2e2;
}

/* styling for the protocols vs. OS table in overview.rst */
/* first, general bits */
div.body td.mark {
text-align: center;
border-left: 1px solid #ccc;
}
table.mark th {
text-align: center;
}
table.mark td {
vertical-align: middle;
}
table.mark td[colspan="7"] {
text-align: center;
padding-top: 8pt;
padding-bottom: 2pt;
}
table.mark cite {
font-weight: bold;
}

/* individual Y/N/... cells */
td.mark {
width: 4.5em;
}
td.mark span {
display: block;
padding: 3px 1px;
border: 1px dotted #666;
width: 36pt;
margin:auto;
}
span.mark-y { background-color: #77ffaa; }
span.mark-geq { background-color: #aaff77; }
span.mark-cp { background-color: #ffbb55; }
span.mark-n { background-color: #ff8877; }
span.mark-dag { background-color: #ffee99; font-size: 8pt; padding:0px 1px; border-top:0px; }

/* for the legend below */
li span.mark {
display: inline-block;
padding: 3px 1px;
border: 1px dotted #666;
width: 36pt;
text-align: center;
}
@@ -0,0 +1,13 @@
/* special styling for the protocols vs. OS table in overview.rst
*
* unfortunately this can't be done in straight CSS because we're changing
* the styling on the parent.
*/
$(document).ready(function() {
$("span.mark:contains('Y')" ).addClass("mark-y" ).parent("td").addClass("mark");
$("span.mark:contains('≥')" ).addClass("mark-geq").parent("td").addClass("mark");
$("span.mark:contains('N')" ).addClass("mark-n" ).parent("td").addClass("mark");
$("span.mark:contains('CP')").addClass("mark-cp" ).parent("td").addClass("mark");
$("span.mark:contains('†')" ).addClass("mark-dag").parent("td").addClass("mark");
$('td.mark').parents('table').addClass("mark").children('colgroup').remove();
});
@@ -358,6 +358,7 @@ def setup(app):
app.add_object_type('clicmd', 'clicmd')
# css overrides for HTML theme
app.add_stylesheet('overrides.css')
app.add_javascript('overrides.js')
# load Pygments lexer for FRR config syntax
#
# NB: in Pygments 2.2+ this can be done with `load_lexer_from_file`, but we
@@ -5,12 +5,12 @@ Overview
********

`FRR`_ is a routing software package that provides TCP/IP based routing
services with routing protocols support such as RIPv1, RIPv2, RIPng, OSPFv2,
OSPFv3, IS-IS, BGP-4, and BGP-4+ (:ref:`supported-rfcs`). FRR also supports
services with routing protocols support such as BGP, RIP, OSPF, IS-IS and more
(see :ref:`supported-protocols`). FRR also supports
special BGP Route Reflector and Route Server behavior. In addition to
traditional IPv4 routing protocols, FRR also supports IPv6 routing protocols.
With SNMP daemon which supports SMUX and AgentX protocol, FRR provides routing
protocol MIBs (:ref:`snmp-support`).
With an SNMP daemon that supports the AgentX protocol, FRR provides routing
protocol MIB read-only access (:ref:`snmp-support`).

FRR uses an advanced software architecture to provide you with a high quality,
multi server routing engine. FRR has an interactive user interface for each
@@ -150,27 +150,93 @@ Recent versions of the following compilers are well tested:

.. _supported-protocols:

Supported Protocols & RFCs
==========================

The following well-known protocols are supported:

- BGP
- Babel
- EIGRP
- IS-IS
- LDP
- NHRP
- OSPFv2
- OSPFv3
- PIM
- RIP
- RIPNG

The following technologies are supported as well:

- PBR (Policy Based Routing)
- VNC (Virtual Network Control)
Supported Protocols vs. Platform
================================

The following table lists all protocols cross-refrenced to all operating
systems that have at least CI build tests. Note that for features, only
features with system dependencies are included here.

.. role:: mark

.. comment - the :mark:`X` pieces mesh with a little bit of JavaScript and
CSS in _static/overrides.{js,css} respectively. The JS code looks at the
presence of the 'Y' 'N' '≥' '†' or 'CP' strings. This seemed to be the
best / least intrusive way of getting a nice table in HTML. The table
will look somewhat shoddy on other sphinx targets like PDF or info (but
should still be readable.)
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| Daemon / Feature | Linux | OpenBSD | FreeBSD | NetBSD | Solaris |
+==+================================+================+==============+============+============+============+
| FRR Core |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `zebra` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | VRF | :mark:`≥4.8` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | MPLS | :mark:`≥4.5` | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `pbrd` (Policy Routing) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| WAN / Carrier protocols |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `bgpd` (BGP) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | VRF / L3VPN | :mark:`≥4.8` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
| | | :mark:`†4.3` | | | | |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | EVPN | :mark:`≥4.18` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
| | | :mark:`†4.9` | | | | |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | VNC (Virtual Network Control) | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | Flowspec | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` | :mark:`CP` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `ldpd` (LDP) | :mark:`≥4.5` | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | VPWS / PW | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | VPLS | :mark:`N` | :mark:`≥5.8` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `nhrpd` (NHRP) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| Link-State Routing |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `ospfd` (OSPFv2) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | Segment Routing | :mark:`≥4.12` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `ospf6d` (OSPFv3) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `isisd` (IS-IS) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| Distance-Vector Routing |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `ripd` (RIPv2) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `ripngd` (RIPng) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `babeld` (BABEL) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `eigrpd` (EIGRP) | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| Multicast Routing |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| `pimd` (PIM) | :mark:`≥4.18` | :mark:`N` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | SSM (Source Specific) | :mark:`Y` | :mark:`N` | :mark:`Y` | :mark:`Y` | :mark:`Y` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+
| | ASM (Any Source) | :mark:`Y` | :mark:`N` | :mark:`N` | :mark:`N` | :mark:`N` |
+--+--------------------------------+----------------+--------------+------------+------------+------------+

The indicators have the following semantics:

* :mark:`Y` - daemon/feature fully functional
* :mark:`≥X.X` - fully functional with kernel version X.X or newer
* :mark:`†X.X` - restricted functionality or impaired performance with kernel version X.X or newer
* :mark:`CP` - control plane only (i.e. BGP route server / route reflector)
* :mark:`N` - daemon/feature not supported by operating system

.. _supported-rfcs:

This file was deleted.

Oops, something went wrong.

This file was deleted.

Oops, something went wrong.
@@ -141,8 +141,3 @@ if DEV_BUILD
zebra_zebra_fpm_la_SOURCES += zebra/zebra_fpm_dt.c
endif
endif

EXTRA_DIST += \
zebra/GNOME-SMI \
zebra/GNOME-PRODUCT-ZEBRA-MIB \
# end

0 comments on commit 18d93bb

Please sign in to comment.
You can’t perform that action at this time.