summaryrefslogtreecommitdiff
path: root/tools/frr-reload.py
AgeCommit message (Collapse)Author
2017-05-17tools: reload handle removal of entire address-family section under BGPDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> When an entire address-family section is removed from under BGP, we cannot just issue 'no address-family foo bar' as address-family line doesn't support 'no'. We have to delete the individual lines under the address-family.
2017-05-17tools: frr-reload.py should exit non-zero when "set src x.x.x.x" failsDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-04-04tools: quagga-reload.py fails to change max-pathsDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-03-09Lowercase frr.confMartín Beauchamp
2017-03-07Merge branch 'frr/pull/236' ("tools: frr-reload.py needs to treat "mpls" as ↵David Lamparter
a single line context") Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-03-03tools: frr-reload.py needs to treat "no " as a single line contextDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-03-01tools: frr-reload.py needs to treat "mpls" as a single line contextDaniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-02-27Lowercase frr.confMartín Beauchamp
2017-02-18tools: frr-reload removes "ipv6 nd ra-interval" and "no ipv6 nd suppress-ra"Daniel Walton
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-02-07*: Found some instances of Quagga.confDonald Sharp
Cleanup Quagga.conf -> Frr.conf Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-01-30tools: Silly typo in regex for catching ip route syntaxDinesh G Dutt
Ticket: CM-14600 Reviewed By: CCR-5615 Testing Done: Verifying the issue with/without the fix I had intended the regexp to catch both ip and ipv6 routes, but somewhere along the way, I left out the grouping in the regexp to catch if it was ip or ipv6 at the start. This caused all the rest of the matches and replaces to be off causing the issue reported by the bug. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Fix unbound newaddr variable, fix too-broad except clausesDinesh G Dutt
Ticket: CM-14351 Reviewed By: dwalton Testing Done:attempts to run NCLU test failed, Daniel verified. Uninit variable bug, plus missed adding ValueError to the except clauses in a couple of places. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Normalize prefix-lists and IP networks for avoiding unnecessary reloadDinesh G Dutt
Ticket: CM-14280, CM-14281, CM-14286 Reviewed By: CCR-5546 Testing Done: quagga_service_test, bgp_enhe, bgp_vrf etc. If the user specifies a network statement such as "network 1.1.1.1/24", the running config shows this as "network 1.1.1.0/24" which causes unnecessary withdrawl of the prefix and re-advertisement causing perturbations. The same thing applies to prefix-lists and of course, IPv6 addresses. IPv6 addresses were being normalized already, and so we use that same function to handle the IPv6 portion of the issue. Interestingly community strings were also getting ensnared in the normalized IPv6 function due to the presence of ':', but thats OK. quagga's running config changes 'null0' and 'blackhole' keywords into 'Null0'. For example: ip route 10.1.1.0/24 blackhole' is displayed as 'ip route 10.1.1.0/24 Null0'. Reload mistakes this and issues a delete of the Null0 route followed by an add of the "blackhole" route. Unnecessary, and results in unexpected routing perturabations. Also fix prefix-list's le/ge behavior: It always prints ge first even if the user has specified le followed by ge, and it doesn't print l3 32/128 if ge is also specified, else it prints them. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Handle deletes of entire interface context as deleting each lineDinesh G Dutt
Ticket: CM-14260 Reviewed By: CCR-14260 Testing Done: quagga reload tests (quagga_service, bgp_enhe etc.) Quagga reload handles deletes of entire context by issuing a "no.." on the entire context itself instead of deleting each individual line of the context. However, this doesn't work when the context is "interface" since its not allowed to do "no interface <ifname>" inside quagga. So special case this by deleting each individual line of the context. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Handle lack of "seq" in prefix-list statements.Dinesh G Dutt
Ticket: CM-14259 Reviewed By: CCR-5527 Testing Done: If users specify "ip prefix-list FOO permit 1.2.3.4/24", running config displays that line as "ip prefix-list FOO seq 5 permit 1.2.3.4/24", which causes reload to delete the running config line and add back the one in the config. This patch fixes that. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Don't overwrite Quagga.conf on reload, unless user specified.Dinesh G Dutt
Ticket: CM-14059 Reviewed By: CCR-5524 Testing Done: the usual At some point in the 3.x release cycle, it was decided to overwrite the user's Quagga.conf configuration file with the output of running config when the user did a quagga reload. This is problematic for several reasons such as: losing user-specified comments, upsetting network automation scripts which think some thing has changed all the time from the specified config etc. This patch fixes this issue by not overwriting the Quagga.conf file unless the user specifies it via an additional option, or the file being used as input to quagga reload isn't the default configuration file (incl. path). Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-30tools: Fix unnecessary routing perturbations due to old style configDinesh G Dutt
Ticket: CM-14060 Reviewed By: Testing Done: There are two harmful problems (cause routing changes in the network) with the 2.5.x style config: one with the old style specification of "multipath as-relax", and the other with ip import-table, used by redistribute neighbor In 2.5, we had the user specify 'no-as-set' as the suffix to 'bgp bestpath as-path multipath relax' to avoid quagga's default behavior which'd cause weird routing problems. However, in 3.x, we made 'no-as-set' as the default, and so its neither required to specify it nor is it shown in the running config. This means when we do quagga reload, we remove the multipath as-relax line and add it back with the no-as-set line. This causes all BGP sessions to be reset. The problem with the "ip import-table" is that it causes us to unimport the routes and then add it back again, causing routing prefix changes throughout the network, potentially causing blackholing of traffic. This fix addresses both these issues and avoids the unnecessary routing blips. Signed-off-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-01-04debian: Convert Quagga -> FrrDonald Sharp
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>