1. 30 Apr, 2019 1 commit
    • Ondřej Zajíček's avatar
      BGP: Dynamic BGP · e0835db4
      Ondřej Zajíček authored
      Support for dynamically spawning BGP protocols for incoming connections.
      Use 'neighbor range' to specify range of valid neighbor addresses, then
      incoming connections from these addresses spawn new BGP instances.
  2. 24 Apr, 2019 1 commit
  3. 12 Apr, 2019 1 commit
  4. 08 Apr, 2019 1 commit
    • Ondřej Zajíček's avatar
      BGP: Handle corner cases in event ordering · 4a50c8bd
      Ondřej Zajíček authored
      When BGP connection is opened, it may happen that rx hook (with remote
      OPEN) is called before tx hook (for local OPEN). Therefore, we need to do
      internal changes (like setting local_caps) synchronously with OPENSENT
      transition and we need to ensure that OPEN is sent before KEEPALIVE.
  5. 03 Apr, 2019 1 commit
    • Ondřej Zajíček's avatar
      BGP: Promiscuous ASN mode · 23ee6b1c
      Ondřej Zajíček authored
      Allow to specify just 'internal' or 'external' for remote neighbor
      instead of specific ASN. In the second case that means BGP peers with
      any non-local ASNs are accepted.
  6. 02 Apr, 2019 1 commit
  7. 19 Mar, 2019 2 commits
  8. 18 Mar, 2019 2 commits
  9. 14 Mar, 2019 1 commit
    • Ondřej Zajíček's avatar
      Nest: Update handling of temporary attributes · 875cc073
      Ondřej Zajíček authored
      The temporary atttributes are no longer removed by ea_do_prune(), but
      they are undefined by store_tmp_attrs() protocol hooks. This fixes
      several bugs where temporary attributes were removed when they should
      not or not removed when they should be. The flag EAF_TEMP is no longer
      needed and was removed.
      Update all protocol make_tmp_attrs() / store_tmp_attrs() hooks to use
      helper functions and to handle unset attributes properly.
      Also fix some related bugs like improper handling of empty eattr list.
  10. 06 Mar, 2019 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Improved handling of tmpattrs · 9aa77fcc
      Ondřej Zajíček authored
      Keep track of whether OSPF tmpattrs are actually defined for given route
      (using flags in rte->pflags). That makes them behave more like real
      eattrs so a protocol can define just a subset of them or they can be
      undefined by filters.
      Do not set ospf_metric2 for other than type 2 external OSPF routes and do
      not set ospf_tag for non-external OSPF routes. That also fixes a bug
      where internal/inter-area route propagated from one OSPF instance to
      another is initiated with infinity ospf_metric2.
      Thanks to Yaroslav Dronskii for the bugreport.
  11. 26 Feb, 2019 1 commit
  12. 22 Feb, 2019 2 commits
  13. 19 Feb, 2019 3 commits
  14. 17 Feb, 2019 1 commit
    • Ondřej Zajíček's avatar
      OSPF: Reset LSAs during area type change · bf8d7bba
      Ondřej Zajíček authored
      When area is reconfigured to a different type, we need to flush LSAs as
      they may not be valid (e.g. NSSA-LSA for non-NSSA area). Also, when we
      have have just one OSPF area and that changes type, we could restart OSPF
      as there is no state to keep anyway. That solves issue with different
      handling of external routes exported to OSPF based of main area type.
  15. 13 Feb, 2019 1 commit
  16. 09 Feb, 2019 2 commits
  17. 05 Feb, 2019 2 commits
    • Ondřej Zajíček's avatar
      Nest: Improve export counter handling · 6e8fb668
      Ondřej Zajíček authored
      One of previous workarounds for phantom route avoidance breaks export
      counters by expanding sending of spurious withdraws, which are send when
      we are not sure whether we have advertised that routes in the past.
      If not, then export counter is decreased, but it was not increased
      before, so it overflows under zero.
      The patch fixes that by sendung spurious withdraws, but not counting them
      on export counter. That may lead to error in the other direction, but that
      happens only as a race condition (i.e., in normal operation filters
      return proper values about old route export state).
    • Ondřej Zajíček's avatar
      Nest: Report preferred counters also when 'import keep filtered' is enabled · 52fdd1cb
      Ondřej Zajíček authored
      Thanks to Michal Nowak for reporting the issue.
  18. 03 Feb, 2019 4 commits
  19. 02 Feb, 2019 1 commit
  20. 01 Feb, 2019 1 commit
  21. 31 Jan, 2019 4 commits
  22. 30 Jan, 2019 1 commit
    • Ondřej Zajíček's avatar
      Nest: Prevent withdraws from propagation back to source protocol · e84c81b7
      Ondřej Zajíček authored
      The earlier fix loosen conditions for not running filters on old
      route when deciding about route propagation to a protocol to avoid
      issues with ghost routes in some race conditions.
      Unfortunately, the fix also caused back-propagation of withdraws. For
      regular updates, back-propagation is prevented in import_control hooks,
      but these are not called on withdraws. For them, import_control hooks
      are called on old routes instead, changing (old, NULL) notification
      to (NULL, NULL), which is ignored. By not calling export processing
      in some cases, the withdraw is not ignored and is back-propagated.
      This patch fixes that by contract conditions so the earlier fix is not
      applied to back-propagated updates.
  23. 26 Jan, 2019 3 commits
  24. 24 Jan, 2019 1 commit
  25. 17 Jan, 2019 1 commit