summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2017-11-07test/lib: Add bgp config structure for GoBGP/Quagga containersSatoshi Fujimoto
This commit introduces 'bgp_config' attribute for GoBGP/Quagga containers to configure complex settings. Adding to this, this commit enables to configure BGP confederation settings to GoBGP/Quagga conrainers. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07test/lib: Enhancement on Get Rib library on QuaggaSatoshi Fujimoto
For Quagga containers, currently, when we use get_global_rib() without specifying prefix, we cannot get AS_PATH and other attributes. And when we use get_global_rib() with prefix, we can get only one path even if there is multiple paths for a destination. This commit fixes these problems by refining test/lib/quagga.py. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07table/path: Print Confederation AS_PATH segment ExplicitlySatoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07*: Support BGP Confederations (RFC 5065)Satoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07packet/bgp: Add Validation for BGP ConfederationsSatoshi Fujimoto
RFC 5065 says that: "It is a error for a BGP speaker to receive an update message from a confederation peer that is not in the same Member-AS that does not have AS_CONFED_SEQUENCE as the first segment." Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07config: Pass Global Config to SetDefaultNeighborConfigSatoshi Fujimoto
In neighbor config, there are some parameters whose default value can be changed depending on the global config. This commit modifies the argument of config.SetDefaultNeighborConfigValues() to pass the global config. It enables to change the default settings of neighbor depending on the global config. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-07evpn.md: Update tutorial using YABGPIWASE Yusuke
This patch updates output examples of GoBGP and YABGP along with changing the format of "gobgp global rib -a evpn" command. Also, this patch provides the curl command examples for sending POST requests. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-07evpn.md: Update tutorial using BaGPipeIWASE Yusuke
To interchange routes over iBGP session, this patch add the config of Route Reflector to GoBGP and updates output examples of GoBGP and BaGPipe. Note: The BaGPipe Docker image described on this document does not seem to be maintained for 2 years and contains the old version of BaGPipe. So this patch drops the description of this image. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-07docs: Update table of contents of evpn.mdIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-07travis: Update .travis.ymlIWASE Yusuke
For scenario_test, Python build environment is more suitable rather than Go build environment, because scenario_test is written in Python and the building source codes will be done on Docker containers. This patch fixes scenario_test to use Python build environment and reduces "sudo" executions in order to use interpreter of virtualenv. Note: On Travis-Ci, the Python interpreter of sudoer is older version, and when install packages with "sudo pip", InsecurePlatformWarning will be displayed. So it is better to use the newer interpreter of virtualenv. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-07server: Avoid local paths left on iBGP peersIWASE Yusuke
Currently, with iBGP peering, the CLI injected path will not be withdrawn when the deletion if any other path exists on RIB, then the CLI injected path will be left on iBGP peers even if the route is deleted on the originator router. This problem can cause routing loops in some case. This patch fixes to withdraw the old best path when it was the CLI (or gRPC) injected path. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-07*: Fix problems pointed by 'go vet'Satoshi Fujimoto
In the near feature (likely in Go1.10), 'go test' will never work if 'go vet' fails. (See: https://github.com/golang/go/issues/18084) This commit is for dealing with such a situation (and also for improving the quality of our code). Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-06packet/bgp: Avoid Varied Flag Representations in Flowspec FilterSatoshi Fujimoto
Currently, the parsing results of flags in flowsspec filter will be varied every time they are parsed. For example, the tcp-flag '=UFP' may be represented to '=UPF' or '=PUF' and so on. This is due to the use of interation to map. Iterations over maps does not happen in a consistent order. This fixes it by iterating sorted slices instead of maps. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-03cli: Accept stacked labels for EVPN macadv routeIWASE Yusuke
This patch enables "gobgp" command to accept the stacked labels field in EVPN MAC/IP Advertisement Route. Example: Specify stacked labels in comma separated format $ gobgp global rib -a evpn add macadv aa:bb:cc:dd:ee:ff 10.0.0.1 10 10,20 rd 65001:100 rt 65001:100 Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-03cli: Show non route key fields in EVPN as path attributesIWASE Yusuke
According to the removal of the non route key fields in EVPN NLRI string representation, this patch enables "gobgp" command to display these fields as path attributes. Example: $ gobgp global rib -a evpn add macadv aa:bb:cc:dd:ee:ff 10.0.0.1 10 10,20 rd 65001:100 rt 65001:100 encap vxlan $ gobgp global rib -a evpn Network Labels Next Hop AS_PATH Age Attrs *> [type:macadv][rd:65001:100][etag:10][mac:aa:bb:cc:dd:ee:ff][ip:10.0.0.1] [10,20] 0.0.0.0 00:00:03 [{Origin: ?} {Extcomms: [65001:100], [VXLAN]} [ESI: single-homed]] Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-03packet/bgp: Remove non route key fields from stringIWASE Yusuke
RFC7432 and draft-ietf-bess-evpn-prefix-advertisement says some fields in EVPN NLRIs (e.g., MPLS Label(s)) should no be treated as the route key, but currently, GoBGP's string representations of EVPN NLRIs include all fields. So the paths should be treated as the same (e.g., only different in MPLS Label and other field is the same) can be treated as the different. This patch removes non route key fields from NLRI string representation and fixes this problem. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-03table/policy: Nil check before reference in inUse()Satoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-03table/message: Send EoR as the last of UPDATE messagesSatoshi Fujimoto
EoR should be sent at the end of the UPDATE messages, but currently, EoR may be sent before RIB. This commit fixes this problem. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-02zclient: Register all nexthops contained in RIBsIWASE Yusuke
Currently, zclient registers only nexthops which bound for the best path, this patch enables to register all nexthops which contained in RIBs in order to detect nexthops down faster. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zclient: Unregister uninterested nexthopsIWASE Yusuke
This patch enables to unregister nexthop when received NEXTHOP_UPDATE message and there is no path bound for the updated nexthop. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02server: function notifyPrePolicyUpdateWatcherIWASE Yusuke
The function for notifying WATCH_EVENT_TYPE_PRE_UPDATE event hasn't been defined yet, this patch defines a function for it. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zclient: Enable to connect to FRRoutingIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zebra/zapi: Support some FRRouting messagesIWASE Yusuke
The supposed FRRouting version for this patch is 3.0 (tag name is "frr-3.0"). Note: This patch does not support all messages defined in FRRouting, and some of message are left on TODO. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zebra/zapi: Define constants for FRRouting supportIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zebra/zapi: Serialize messages based on API versionIWASE Yusuke
Because the Zebra message formats are different between API versions, this patch enables to detect API version when serialization. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-02zebra/zapi: Constants for Interface Connected Address FlagsIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-01GoBGP 1.25FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-01table/path_test: Remove debug printIWASE Yusuke
This patch removes debug print statements for improving the result of the spell checker. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-01Fix some typos found by spell checkerIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-01Fix some spelling for spell checker's testIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-01tools: Add script for spell checkingIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-01doc: Document for Peer Group and Dynamic NeighborSatoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-01gobgpd: fix multiple configs handlingFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-31server: fix AddPath to return uuid properlyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-30table/path: net.IP.IsUnspecified() instead of isZero()IWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-30cli/mrt: Drop queue size to have reasonable memory usage; make it ↵Mariusz Gronczewski
configurable from cli
2017-10-30cli/mrt: move all options to config structure for consistencyMariusz Gronczewski
2017-10-30cli/mrt: Allow to filter out ipv4/ipv6 and overwrite nexthopMariusz Gronczewski
- Add option to filter out ipv4/ipv6 - Add option to overwrite nexthop in imported routes
2017-10-07server: fix "occurred" spellingVincent Bernat
2017-10-07packet/bmp: fix "length" spellingVincent Bernat
2017-10-06docs: add required go versions to READMEFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-05server: stop Shutdown() with no peerFUJITA Tomonori
After Shutdown() is called, the main goroutine waits for peers' goroutines to stop then dies. But if no peer is configured, the main goroutines never dies. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-10-05server: Avoid applying policy multiply when updating pathIWASE Yusuke
Currently, UpdatePath() of BgpServer will apply policy multiply, and this causes the unexpected result of policy configurations. This patch avoids this multiple policy application. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03mrt: Enable to dump MRT with Path IdentifierIWASE Yusuke
This patch enables to dump updates and table in MRT format with Path Identifier. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03cli: Enable to inject MRT with Path IdentifierIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03server: Add config.Neighbor into WatchEventUpdateIWASE Yusuke
This patch adds a field of config.Neighbor into WatchEventUpdate in order to get config/state info of the neighbor which sent the UPDATE message. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03server/mrt: Fix unfilled logging fieldIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03server/mrt: Rename a variable to avoid name collisionIWASE Yusuke
The variable "m" in mrtWriter.loop() collides its receiver "m *mrtWriter". This patch renames this variable name. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03server/mrt: Enable mrtWriter to access MrtConfigIWASE Yusuke
This patch enables mrtWriter to directly access config.MrtConfig values in case that some new options will be introduced. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03packet/mrt: Enable RibEntry to switch add-path enabledIWASE Yusuke
Because path_id = 0 is valid Path ID, we cannot determine whether add-path is enabled based on just a value of path_id. This patch adds a new argument to switch add-path features. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>