summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/developer/_static/overrides.css4
-rw-r--r--doc/developer/building-frr-on-alpine.rst2
-rw-r--r--doc/developer/conf.py4
-rw-r--r--doc/user/_static/overrides.css4
-rw-r--r--doc/user/bgp.rst28
-rw-r--r--doc/user/conf.py4
-rw-r--r--doc/user/routemap.rst37
-rwxr-xr-xtools/checkpatch.pl69
8 files changed, 101 insertions, 51 deletions
diff --git a/doc/developer/_static/overrides.css b/doc/developer/_static/overrides.css
new file mode 100644
index 0000000000..1e0de66c55
--- /dev/null
+++ b/doc/developer/_static/overrides.css
@@ -0,0 +1,4 @@
+/* remove max-width restriction */
+div.body {
+ max-width: none;
+}
diff --git a/doc/developer/building-frr-on-alpine.rst b/doc/developer/building-frr-on-alpine.rst
index 68031b3b61..6fcb5de107 100644
--- a/doc/developer/building-frr-on-alpine.rst
+++ b/doc/developer/building-frr-on-alpine.rst
@@ -1,4 +1,4 @@
-Building FRR dev packages on Alpine Linux from Git Source
+Alpine Linux 3.7+
=========================================================
For building Alpine Linux dev packages, we use docker.
diff --git a/doc/developer/conf.py b/doc/developer/conf.py
index e2293b2a6b..ed91ff255f 100644
--- a/doc/developer/conf.py
+++ b/doc/developer/conf.py
@@ -188,7 +188,7 @@ html_favicon = '../figures/frr-logo-icon.png'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['_static']
+html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
@@ -339,3 +339,5 @@ def setup(app):
# object type for FRR CLI commands, can be extended to document parent CLI
# node later on
app.add_object_type('clicmd', 'clicmd')
+ # css overrides for HTML theme
+ app.add_stylesheet('overrides.css')
diff --git a/doc/user/_static/overrides.css b/doc/user/_static/overrides.css
new file mode 100644
index 0000000000..1e0de66c55
--- /dev/null
+++ b/doc/user/_static/overrides.css
@@ -0,0 +1,4 @@
+/* remove max-width restriction */
+div.body {
+ max-width: none;
+}
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index a444822757..6504e7d206 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -604,9 +604,8 @@ Defining Peer
.. index:: neighbor PEER remote-as ASN
.. clicmd:: neighbor PEER remote-as ASN
-
Creates a new neighbor whose remote-as is ASN. PEER can be an IPv4 address
- or an IPv6 address.::
+ or an IPv6 address or an interface to use for the connection.::
router bgp 1
neighbor 10.0.0.1 remote-as 2
@@ -618,6 +617,19 @@ Defining Peer
can't find neighbor 10.0.0.1
+.. index:: neighbor PEER remote-as internal
+.. clicmd:: neighbor PEER remote-as internal
+
+ Create a peer as you would when you specify an ASN, except that if the
+ peers ASN is different than mine as specified under the :clicmd:`router bgp ASN`
+ command the connection will be denied.
+
+.. index:: neighbor PEER remote-as external
+.. clicmd:: neighbor PEER remote-as external
+
+ Create a peer as you would when you specify an ASN, except that if the
+ peers ASN is the same as mine as specified under the :clicmd:`router bgp ASN`
+ command the connection will be denied.
.. _bgp-peer-commands:
@@ -2076,19 +2088,9 @@ How to set up a 6-Bone connection
::
- zebra configuration
- ===================
- !
- ! Actually there is no need to configure zebra
- !
-
bgpd configuration
==================
!
- ! This means that routes go through zebra and into the kernel.
- !
- router zebra
- !
! MP-BGP configuration
!
router bgp 7675
@@ -2112,8 +2114,6 @@ How to set up a 6-Bone connection
set ipv6 nexthop global 3ffe:1cfa:0:2:2c0:4fff:fe68:a225
set ipv6 nexthop local fe80::2c0:4fff:fe68:a225
!
- ! logfile FILENAME is obsolete. Please use log file FILENAME
-
log file bgpd.log
!
diff --git a/doc/user/conf.py b/doc/user/conf.py
index efe1023740..7a77e492ce 100644
--- a/doc/user/conf.py
+++ b/doc/user/conf.py
@@ -188,7 +188,7 @@ html_favicon = '../figures/frr-logo-icon.png'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-# html_static_path = ['_static']
+html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
@@ -339,3 +339,5 @@ def setup(app):
# object type for FRR CLI commands, can be extended to document parent CLI
# node later on
app.add_object_type('clicmd', 'clicmd')
+ # css overrides for HTML theme
+ app.add_stylesheet('overrides.css')
diff --git a/doc/user/routemap.rst b/doc/user/routemap.rst
index acf63a6122..3e88dee905 100644
--- a/doc/user/routemap.rst
+++ b/doc/user/routemap.rst
@@ -198,7 +198,42 @@ Route Map Set Command
.. index:: set ip next-hop IPV4_ADDRESS
.. clicmd:: set ip next-hop IPV4_ADDRESS
- Set the BGP nexthop address.
+ Set the BGP nexthop address to the specified IPV4_ADDRESS. For both
+ incoming and outgoing route-maps.
+
+.. index:: set ip next-hop peer-address
+.. clicmd:: set ip next-hop peer-address
+
+ Set the BGP nexthop address to the address of the peer. For an incoming
+ route-map this means the ip address of our peer is used. For an outgoing
+ route-map this means the ip address of our self is used to establish the
+ peering with our neighbor.
+
+.. index:: set ip next-hop unchanged
+.. clicmd:: set ip next-hop unchanged
+
+ Set the route-map as unchanged. Pass the route-map through without
+ changing it's value.
+
+.. index:: set ipv6 next-hop peer-address
+.. clicmd:: set ipv6 next-hop peer-address
+
+ Set the BGP nexthop address to the address of the peer. For an incoming
+ route-map this means the ipv6 address of our peer is used. For an outgoing
+ route-map this means the ip address of our self is used to establish the
+ peering with our neighbor.
+
+.. index:: set ipv6 next-hop prefer-global
+.. clicmd:: set ipv6 next-hop prefer-global
+
+ For Incoming and Import Route-maps if we receive a v6 global and v6 LL
+ address for the route, then prefer to use the global address as the nexthop.
+
+.. index:: set ipv6 next-hop global IPV6_ADDRESS
+.. clicmd:: set ipv6 next-hop global IPV6_ADDRESS
+
+ Set the next-hop to the specified IPV6_ADDRESS. For both incoming and
+ outgoing route-maps.
.. index:: set local-preference LOCAL_PREF
.. clicmd:: set local-preference LOCAL_PREF
diff --git a/tools/checkpatch.pl b/tools/checkpatch.pl
index e66be1875f..c1fab1029a 100755
--- a/tools/checkpatch.pl
+++ b/tools/checkpatch.pl
@@ -5629,49 +5629,52 @@ sub process {
}
}
+#
+# Kernel macros unnused for FRR
+#
# Check for __attribute__ packed, prefer __packed
- if ($realfile !~ m@\binclude/uapi/@ &&
- $line =~ /\b__attribute__\s*\(\s*\(.*\bpacked\b/) {
- WARN("PREFER_PACKED",
- "__packed is preferred over __attribute__((packed))\n" . $herecurr);
- }
+# if ($realfile !~ m@\binclude/uapi/@ &&
+# $line =~ /\b__attribute__\s*\(\s*\(.*\bpacked\b/) {
+# WARN("PREFER_PACKED",
+# "__packed is preferred over __attribute__((packed))\n" . $herecurr);
+# }
# Check for __attribute__ aligned, prefer __aligned
- if ($realfile !~ m@\binclude/uapi/@ &&
- $line =~ /\b__attribute__\s*\(\s*\(.*aligned/) {
- WARN("PREFER_ALIGNED",
- "__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
- }
+# if ($realfile !~ m@\binclude/uapi/@ &&
+# $line =~ /\b__attribute__\s*\(\s*\(.*aligned/) {
+# WARN("PREFER_ALIGNED",
+# "__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
+# }
# Check for __attribute__ format(printf, prefer __printf
- if ($realfile !~ m@\binclude/uapi/@ &&
- $line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) {
- if (WARN("PREFER_PRINTF",
- "__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) &&
- $fix) {
- $fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.*)\)\s*\)\s*\)/"__printf(" . trim($1) . ")"/ex;
+# if ($realfile !~ m@\binclude/uapi/@ &&
+# $line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) {
+# if (WARN("PREFER_PRINTF",
+# "__printf(string-index, first-to-check) is preferred over __attribute__((format(printf, string-index, first-to-check)))\n" . $herecurr) &&
+# $fix) {
+# $fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.*)\)\s*\)\s*\)/"__printf(" . trim($1) . ")"/ex;
- }
- }
+# }
+# }
# Check for __attribute__ format(scanf, prefer __scanf
- if ($realfile !~ m@\binclude/uapi/@ &&
- $line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\b/) {
- if (WARN("PREFER_SCANF",
- "__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) &&
- $fix) {
- $fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\s*,\s*(.*)\)\s*\)\s*\)/"__scanf(" . trim($1) . ")"/ex;
- }
- }
+# if ($realfile !~ m@\binclude/uapi/@ &&
+# $line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\b/) {
+# if (WARN("PREFER_SCANF",
+# "__scanf(string-index, first-to-check) is preferred over __attribute__((format(scanf, string-index, first-to-check)))\n" . $herecurr) &&
+# $fix) {
+# $fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*scanf\s*,\s*(.*)\)\s*\)\s*\)/"__scanf(" . trim($1) . ")"/ex;
+# }
+# }
# Check for __attribute__ weak, or __weak declarations (may have link issues)
- if ($^V && $^V ge 5.10.0 &&
- $line =~ /(?:$Declare|$DeclareMisordered)\s*$Ident\s*$balanced_parens\s*(?:$Attribute)?\s*;/ &&
- ($line =~ /\b__attribute__\s*\(\s*\(.*\bweak\b/ ||
- $line =~ /\b__weak\b/)) {
- ERROR("WEAK_DECLARATION",
- "Using weak declarations can have unintended link defects\n" . $herecurr);
- }
+# if ($^V && $^V ge 5.10.0 &&
+# $line =~ /(?:$Declare|$DeclareMisordered)\s*$Ident\s*$balanced_parens\s*(?:$Attribute)?\s*;/ &&
+# ($line =~ /\b__attribute__\s*\(\s*\(.*\bweak\b/ ||
+# $line =~ /\b__weak\b/)) {
+# ERROR("WEAK_DECLARATION",
+# "Using weak declarations can have unintended link defects\n" . $herecurr);
+# }
# check for c99 types like uint8_t used outside of uapi/ and tools/
if ($realfile !~ m@\binclude/uapi/@ &&