Commit Graph

16219 Commits

Author SHA1 Message Date
Donald Sharp
11056dd815
Merge pull request #4275 from ton31337/fix/move_outside_bgp_input_modifier
bgpd: Move inbound policy check outside bgp_input_modifier()
2019-05-10 11:34:40 -04:00
Donald Sharp
943142da34
Merge pull request #4272 from opensourcerouting/isis-prefix-sid-fix
isisd: fix display of the Extended IPv4 reachability TLV
2019-05-10 11:06:56 -04:00
Jafar Al-Gharaibeh
60f678ae0d
Merge pull request #4214 from donaldsharp/s_g_channel_deletion
pimd: Deletion of a ifchannel does not immediately mean remove from OIL
2019-05-10 09:49:24 -05:00
Donatas Abraitis
a8b72dc69e bgpd: Move inbound policy check outside bgp_input_modifier()
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-05-10 17:01:39 +03:00
Donatas Abraitis
ce1df88f8f topotests: Add test to check if eBGP required policy works
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2019-05-10 17:01:24 +03:00
Donald Sharp
c85711a8c9
Merge pull request #4297 from vishaldhingra/rmap
lib : Child rmap not sending an update to parent rmap,if there is an update in child rmap.
2019-05-10 09:04:59 -04:00
Renato Westphal
e777abf3a1
Merge pull request #4295 from donaldsharp/topotest_if
topotests: ifindex values are not guaranteed to be the same
2019-05-10 08:42:07 -03:00
Renato Westphal
773fc72b1f
Merge pull request #4242 from donaldsharp/zebra_diet
Zebra diet
2019-05-10 08:29:59 -03:00
Christian Franke
bf555bf035 isisd: Don't set subtlv structure if we didn't unpack any subtlvs
This ensures deserialized and serialized TLV representation is
consistent.
2019-05-10 13:24:38 +02:00
Renato Westphal
3ae6477f50
Merge pull request #4288 from qlyoung/checkpatch-unsafe-function-lints
tools: add lints for unsafe functions
2019-05-10 07:16:24 -03:00
Donald Sharp
900193b022
Merge pull request #4287 from NaveenThanikachalam/dup_config_processing
lib, bgpd: Disallow processing of duplicate config.
2019-05-09 18:36:50 -04:00
Jafar Al-Gharaibeh
58d9d6ac7c
Merge pull request #4284 from donaldsharp/conf_t
Conf t
2019-05-09 17:01:51 -05:00
Jafar Al-Gharaibeh
f2809b5258
Merge pull request #4292 from qlyoung/doc-bgp-maximum-prefix
doc: add doc for bgp maximum-prefix knob
2019-05-09 17:00:16 -05:00
Jafar Al-Gharaibeh
448a0ea683
Merge pull request #4298 from qlyoung/gitignore-ccls-cache
.gitignore: ignore .ccls-cache
2019-05-09 16:58:46 -05:00
Ameya Dharkar
3a3be633cc Zebra: Add "show ip/ipv6 fib <prefix> [json]" CLI - review comments 1
According to the review comments, added "Network not in FIB" message when we do
not have a FIB route present for given prefix.

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
2019-05-09 14:23:23 -07:00
Quentin Young
76d37f14ef .gitignore: ignore .ccls-cache
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-09 17:25:18 +00:00
Donald Sharp
7f53baa7b6
Merge pull request #4251 from rgirada/fix_pim_upstream
Pimd : S,G Mroute entries are not expiring  even after KAT expiry, remain as stale entries.
2019-05-09 12:17:49 -04:00
Donald Sharp
4bc1617c0c zebra: Remove unused zebra_router_score_proto
With the previous commit, the zebra_router_score_proto function
became unnecessary, so let us remove it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-05-09 07:13:01 -04:00
Donald Sharp
d8612e6545 zebra: Track tables allocated by vrf and cleanup
For each table created by a vrf, keep track of it and
allow for proper cleanup on shutdown of that particular
table.  Cleanup client shutdown to only cleanup data
that the particular vrf owns.  Before we were cleaning
the same table 2 times.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-05-09 07:11:22 -04:00
Donald Sharp
8ab39b7f1c zebra: Remove basic duplicated function
Combine the zebra_vrf_other_route_table and zebra_vrf_table_with_table_id
functions into 1 function.  Since they are basically the same thing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-05-09 07:09:20 -04:00
rgirada
e3e532dd16 Pimd : S,G Mroute entries are not expiring even after KAT expiry,
become stale entries.

Topology:
--------
Source
|
FHR
|
RP ------ LHR --- Recv1
|
Recv2

Root case :
-----------
When RP acts as a LHR i.e RP has a local receiver and registed for
the same group where LHR connected receiver also registered for the
same multicast group.When RP receives a (s,g) join form LHR , it
increments upstream ref count to two to track the Local membership
as well.But at the time of KAT expiry in RP , upstream reference
is not being removed Which is added to track local membership which
is causing to make these entries as stale in RP and FHR.

Fix : Made the change such that it removes the upstream reference
if it is added to track the local memberships.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2019-05-09 02:53:11 -07:00
Naveen Thanikachalam
6c3247bd2a lib, bgpd: Disallow processing of duplicate config.
This fix aims to reduce the load on BGPD when certain
exisiting configurations are replayed.
Specifically, the fix prevents BGPD from processing
routes when the following already existing configurations
are replayed:
1) A match criteria is configured within a route-map.
2) When "call" is invoked within a route-map.
3) When a route-map is tied to a BGP neighbor.

Signed-off-by: NaveenThanikachalam <nthanikachal@vmware.com>
2019-05-08 21:22:23 -07:00
vishaldhingra
5ed2e47bbd lib : Child rmap not sending an update to parent rmap,if there is an update in child rmap.
Route map library creates a hash table to save the dependency binding.
route-map LRM permit 1
call rLRM
Whenever there is change in child routemap(rLRM), it tries to
find the dependency mapping with the child route map MATCH event
and it fails.The handing of match add and match delete was missing
to get the correct dependency,here it's LRM.
This fix would correct the flow to get the correct dependency.

Signed-off-by: vishaldhingra <vdhingra@vmware.com>
2019-05-08 20:59:15 -07:00
Ameya Dharkar
6a794a7e83 Zebra: Add "show ip/ipv6 fib <prefix> [json]" CLI
"show ip/ipv6 route <prefix> [json]" uses a different parser chain from
"show ip/ipv6 route [json]".
"show ip/ipv6 route <prefix> [json]" CLI does not support "fib" option.

Fix:
Add "fib" option to the above command.
The new command is: "show ip/ipv6 <route/fib> <prefix> [json]"
If "fib" option is specified, we will show only the selected routes
(Similar to "show ip/ipv6 fib")

Signed-off-by: Ameya Dharkar <adharkar@vmware.com>
2019-05-08 14:26:49 -07:00
Donald Sharp
12456add84
Merge pull request #4283 from lkrishnamoor/json_output_cli
bgpd: Fix for evpn json cli output
2019-05-08 15:47:36 -04:00
Quentin Young
886026c8d2 doc: add doc for bgp maximum-prefix knob
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-08 19:29:13 +00:00
Donald Sharp
c9d72a0b7f topotests: ifindex values are not guaranteed to be the same
Different versions of linux are assigned different interface
ifindexes.  Mask that cabbage out.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-05-08 15:06:31 -04:00
Lakshman Krishnamoorthy
597f4b1a9a bgpd: Evpn json cli output missing
Issue1: The following json cli commands are broken (they dont display
anything):
1. show [ip] bgp l2vpn evpn json
2. show [ip] bgp l2vpn evpn all neighbors <IP> routes json
3. show [ip] bgp l2vpn evpn rd <RD> json
4. show [ip] bgp l2vpn evpn rd <RD> neighbors <IP> routes json

RCA1: The existing json_object was partially filled.
Some fields like "prefix", "prefixLen", etc were not
filled in the json_object.
RCA2: Code missing to display the constructed json_object.

Issue2: Column header not shown on bgp evpn commands.
Fix: turned on the flag to display header

Output after fix:
The above commands have been made to follow the existing output style of
"show bgp l2vpn evpn routes json"
leaf-1# sh bgp l2vpn evpn json
{
  "bgpTableVersion":1,
  "bgpLocalRouterId":"10.100.0.1",
  "defaultLocPrf":100,
  "localAS":65000,
  "10.100.0.1:3":{
    "rd":"10.100.0.1:3",
    "[3]:[0]:[32]:[10.100.0.1]":{
      "prefix":"[3]:[0]:[32]:[10.100.0.1]",
      "prefixLen":288,
      "paths":[
        {
          "valid":true,
          "bestpath":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.1",
          "weight":32768,
          "peerId":"(unspec)",
          "aspath":"",
          "path":"",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.1",
              "afi":"ipv4",
              "used":true
            }
          ]
        }
      ]
    }
  },
..........
..........
  "10.100.0.2:2":{
    "rd":"10.100.0.2:2",
    "[3]:[0]:[32]:[10.100.0.2]":{
      "prefix":"[3]:[0]:[32]:[10.100.0.2]",
      "prefixLen":288,
      "paths":[
        {
          "valid":true,
          "bestpath":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.2",
          "weight":0,
          "peerId":"205.0.113.2",
          "aspath":"65002",
          "path":"65002",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.2",
              "afi":"ipv4",
              "used":true
            }
          ]
        },
        {
          "valid":true,
          "pathFrom":"external",
          "routeType":3,
          "ethTag":0,
          "ipLen":32,
          "ip":"10.100.0.2",
          "weight":0,
          "peerId":"203.0.113.4",
          "aspath":"65001 65002",
          "path":"65001 65002",
          "origin":"IGP",
          "nexthops":[
            {
              "ip":"10.100.0.2",
              "afi":"ipv4",
              "used":true
            }
          ]
        }
      ]
    }
  },
....
....
  "numPrefix":10,
  "totalPrefix":10
}
leaf-1# sh bgp l2vpn evpn
BGP table version is 1, local router ID is 10.100.0.1
Status codes:s suppressed, d damped, h history, * valid, > best, i - int
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: ip 10.100.0.1:3

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:4

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:5

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.1:6

*> [3]:[0]:[32]:[10.100.0.1]
                    10.100.0.1                         32768 i
Route Distinguisher: ip 10.100.0.2:2

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002
Route Distinguisher: ip 10.100.0.2:3

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002
Route Distinguisher: ip 10.100.0.2:4

*> [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65002 i
*  [3]:[0]:[32]:[10.100.0.2]
                    10.100.0.2                             0 65001 65002

Displayed 10 out of 10 total prefixes

Signed-off-by: Lakshman Krishnamoorthy <lkrishnamoor@vmware.com>
2019-05-08 11:32:38 -07:00
Quentin Young
5307949e8f tools: add lints for unsafe functions
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-08 15:55:54 +00:00
Donald Sharp
d8a1cf2c9f configure: Update to newer version
We've pulled the next stabilization branch

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-05-08 09:54:35 -04:00
Donald Sharp
48fd341c90
Merge pull request #4286 from vishaldhingra/show_expanded
bgpd : lcommlist not shows the standard and expanded conf. correctly.
2019-05-08 07:56:00 -04:00
vishaldhingra
169b72c851 bgpd : lcommlist not shows the standard and expanded conf. correctly.
lcommunity_list_show uses the wrong macro to calculate the style.
Use the correct one LARGE_COMMUNITY_LIST_STANDARD.

Signed-off-by: vishaldhingra<vdhingra@vmware.com>
2019-05-07 21:12:03 -07:00
Dinesh Dutt
982589a31a doc: Modify documentation to reflect new configure changes
This is the document changes to reflect the configure option
making `terminal` optional.

Signed-off-by: Dinesh Dutt <dd.ps4u@gmail.com>
2019-05-07 21:06:00 -04:00
Dinesh Dutt
dc1c13c019 lib, vtysh: Make archaic "terminal" optional in configure command
The 'configure terminal' command is a bit redundant, so make
the terminal portion optional.

Signed-off-by: Dinesh Dutt <dd.ps4u@gmail.com>
2019-05-07 21:06:00 -04:00
Renato Westphal
51844abda2
Merge pull request #4280 from qlyoung/remove-yang-strreplace-func
lib: remove str_replace function
2019-05-07 18:52:16 -03:00
Quentin Young
be54c185f9
Merge pull request #4277 from rtrlib/2019-05-07-master-bugfix
RPKI fixes/improvements
2019-05-07 16:54:50 -04:00
Quentin Young
6915af74fd
Merge pull request #4082 from opensourcerouting/grpc-nb-plugin
gRPC northbound plugin
2019-05-07 16:53:17 -04:00
Quentin Young
6c90b75669
Merge pull request #4215 from Orange-OpenSource/TE
ospfd: Correct Link-ID and Remote IP for TE LSA
2019-05-07 16:41:20 -04:00
Quentin Young
f9ce1142c3 lib: remove str_replace function
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-07 18:15:28 +00:00
Sri Mohana Singamsetty
953ce6fc82
Merge pull request #4273 from donaldsharp/doc_zebra_command
doc: Add a couple of missed `show zebra ...` comamnds to doc
2019-05-07 09:30:09 -07:00
Lou Berger
9dc90e2565
Merge pull request #4270 from opensourcerouting/libyang-compat
lib, yang: disable libyang custom user types temporarily
2019-05-07 11:07:39 -04:00
Marcel Röthke
fef6fafa90 bgpd: fix rpki module build without ssh support
Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
2019-05-07 17:02:01 +02:00
Marcel Röthke
0e43d16b4c bgpd: add missing newline to a warning message in the rpki module
Signed-off-by: Marcel Röthke <marcel.roethke@haw-hamburg.de>
2019-05-07 17:01:46 +02:00
Philippe Guibert
f21536d2f0 bfd: add bfdd_privs to the bglobal structure
this structure contains the bfdd_privs structure in charge of the
privilege settings. The initialisation has moved a bit, in order that
the preinit settings are done.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:47 +02:00
Philippe Guibert
c3771c91fa doc: change bfd show commands with vrfname keyword
now that bfd show commands have changed, update documentation so as to
reflect how to use vrf keyword in the show bfd commands.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:47 +02:00
Philippe Guibert
533ba31ff4 bfdd: show bfd [vrf NAME] peer command change
the vrf keyword is possible through show bfd command. However, there is
a change with previous version, since that show command was accepting
vrf keyword, only after peer keyword. Now, the vrf keyword is accepted,
but before peer keyword.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:47 +02:00
Philippe Guibert
6f37416509 bfdd: add show bfd [vrf NAME] counters command
that command permits to filter bfd peer counter contexts per vrf.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:47 +02:00
Philippe Guibert
9146cc2a10 bfdd: add show bfd [vrf NAME] peers command
this command permits to filter among the list of bfd peers which one is
to be displayed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:47 +02:00
Philippe Guibert
5ef92a2b20 bfdd: avoid creating duplicate peer contexts
when configuring bfd peers, some parameters may or may not be taken into
account to search for a previous context. This has as consequence that
the result is different with the order of vty commands:

bfd
peer 4.5.6.7 vrf AAAA local-address 1.2.3.5
end
peer 4.5.6.7 vrf AAAA   <--- should not create new session
end

Similarly, the user thinks it has overwritten some key parameters like
local address, whereas it is wrong.
here, some informational message should be present.

bfd
peer 4.5.6.7 vrf AAAA
end
peer 4.5.6.7 vrf AAAA local-address 1.2.3.5
<--- should inform that the key lookup 1.2.3.5 is wrong
end

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 16:01:42 +02:00
Philippe Guibert
626618caee doc: update bfd documentation
add a bfd vrf example. explain that it is possible to use both interface
and vrf keyword.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2019-05-07 15:54:30 +02:00