summaryrefslogtreecommitdiffhomepage
path: root/table
AgeCommit message (Collapse)Author
2018-01-24*: Use strconv.ParseUint instead of strconv.Atoi()IWASE Yusuke
For the 32-bit platform compatibility. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2018-01-23fix breakage with the latest github.com/satori/go.uuidFUJITA Tomonori
The API has changed with the master branch of go.uuid. GoBGP uses the dependency management tool so it's not problem. However, there are projects using GoBGP as a library and doesn't use a dependency management tool... GoBGP has used a released version of go.uuid so now I have to change Gopkg.toml to use tha master branch. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-12-21cli: Enable to filter EVPN routes by Route TypeIWASE Yusuke
Currently, "gobgp" command supports only to display all routes on RIBs, but with huge RIBs, it is convenient to select routes by a part of NLRI fields. This patch enables to filter routes by EVPN Route Type. For example, when 5 routes for each route type; $ gobgp global rib -a evpn Network Labels Next Hop AS_PATH Age Attrs *> [type:A-D][rd:65000:100][esi:single-homed][etag:10] [10] 0.0.0.0 00:01:09 [{Origin: ?}] *> [type:Prefix][rd:65000:100][etag:10][prefix:10.0.0.0/24] [0] 0.0.0.0 00:00:04 [{Origin: ?} [ESI: single-homed] [GW: 0.0.0.0]] *> [type:esi][rd:65000:100][esi:single-homed][ip:10.0.0.1] 0.0.0.0 00:00:19 [{Origin: ?}] *> [type:macadv][rd:65000:100][etag:10][mac:aa:bb:cc:dd:ee:ff][ip:10.0.0.1] [20,30] 0.0.0.0 00:00:54 [{Origin: ?} [ESI: single-homed]] *> [type:multicast][rd:65000:100][etag:10][ip:10.0.0.1] 0.0.0.0 00:00:33 [{Origin: ?}] You can select multicast route as following; $ gobgp global rib -a evpn multicast Network Labels Next Hop AS_PATH Age Attrs *> [type:multicast][rd:65000:100][etag:10][ip:10.0.0.1] 0.0.0.0 00:03:02 [{Origin: ?}] Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-12-20table: fix converting 2bytes to 4bytes AS PATHFUJITA Tomonori
On some conditions, we add some ASes to As4PathParam.AS but don't update As4PathParam.Num (the number of ASes). It breaks serialization of AS4PathParam. Instead of modifying the internal of As4PathParam, let's create a new As4PathParam object. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-12-16table/policy: Support prefix representation in NeighborSetSatoshi Fujimoto
Currently, "neighbor-set" supports only IP address representation and IP prefix representation(such as "192.168.0.0/24") is not supported. This commit enables to accept the prefix representation for "neighbor-set" to allow neighbors to be specified as range. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-26cmd/neighbor: Refactor ShowRoute()Satoshi Fujimoto
For readability and maintainability, separate ShowRoute() into some small functions. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-11-24packet/bgp: Sort FlowSpec rules when decoding/creatingIWASE Yusuke
Currently, we sort the FlowSpec rules when creating a new path containing the FlowSpec NLRI and when parsing CLI arguments for the FlowSpec rules. This patch moves sorting the rules into the inside of the "packet" module and sorts them when decoding binary and creating new NLRI. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-11-23table: fix merging of v4 paths with addpath enabledFUJITA Tomonori
V4 NLRI needs more 4 bytes with addpath enabled. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-23table: use Path's hash value for mergingFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-23table: add attribute hash value to Path structureFUJITA Tomonori
This is for batching paths into one bgp message. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-11-23table: avoid unnecessary attributes in Path objectFUJITA Tomonori
- withdraw path doesn't need any attributes. - mp reach path doesn't need mp unreach attribute (some bgp speackers send an update message including both mp reach and mp unreach). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
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-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-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-10-30table/path: net.IP.IsUnspecified() instead of isZero()IWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-10-03table: Implement ignore-as-path-lengthIWASE Yusuke
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
2017-09-14table/policy: fix ReplacePolicy with preserve=false to remove old statementsPiotr Wydrych
2017-08-07table: exclude mpreach and mpunreach attribute for normal v4 updatesWataru Ishida
It is possible that gobgp's v4 path structure contains mpreach or mpunreach attribute. (we store entire path attributes in path structure as they are received) Since we use a NLRI field of BGP update message for v4 updates and don't aggregate update/withdrawal messages for other address families, we need to exclude these attribute before sending out v4 updates. Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-08-07table: fix handling of update with both mpunreach and mpreach attributeWataru Ishida
some implementations send a mpunreach attribute piggy backed on an update message. Since it is stored in pathattrs of gobgp's path structure, we need to exclude it before sending out update messages. Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-08-02table: allocate bitmap for path id dynamicallyFUJITA Tomonori
allocating 256 bytes per prefix isn't a good idea. Let's allocate 8 bytes by default and expand dynamically if necessary. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-27table: disable wrong warning about aspathFUJITA Tomonori
With addpath support, two paths from API without AS_PATH attribute could be compared. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-26table: don't send OriginaterID or ClusterList attributes to non rr clientsFUJITA Tomonori
A certain bgp implementation crushes when receiving them. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-26fix addpath send withdrawFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-26add addpath send supportFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-26table: assign local identifier to pathFUJITA Tomonori
The local identifier for path is sent to remote peers. To simplify the implementation, 1) the local identifier is unique per prefix not peer. 2) always assign the local identifier even without addpath-rx-capable peer. In the future, we might need to improve 2) to avoid the unnecessary overhead. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-07-19table: Include detailed information about RPKI in originInfoSatoshi Fujimoto
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-07-04api/cli: support showing path-identifierWataru Ishida
$ gobgp neighbor <neighbor address> ID Network Next Hop AS_PATH Age Attrs 2 10.0.0.10/32 10.10.1.2 01:05:35 [{Origin: i} {LocalPref: 100}] 1 10.0.0.10/32 10.10.1.1 01:05:35 [{Origin: i} {LocalPref: 100}] 3 10.1.0.10/32 10.10.1.3 01:05:35 [{Origin: i} {LocalPref: 100}] Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-07-04support addpath recvISHIDA Wataru
2017-07-04use Destination instead of Path for path selection APIFUJITA Tomonori
With Destination struct, multiple Paths can be moved from the table package to the server package in a cleaner way; for features such as add-path. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-16config: Use State to get NeighborAddress instead of ConfigSatoshi Fujimoto
By introducing dynamic neighbor feature, GoBGP can have dynamic neighbors, and corresponding Config.NeighboAddress can be empty. This patch sets State.NeighborAddress for all neighbors, and gets the neighbor's address from them. Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
2017-06-07replace github.com/Sirupsen/logrus with github.com/sirupsen/logrusFUJITA Tomonori
The usage of "github.com/sirupsen/logrus" is recommended. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-06-01Fix RouteDistinguisher parsing and VPNV6 VRF rib parsingLamanna
2017-05-31table: reduce allocs in NewDestinationChris Stockton
In NewDestination we add additional path to AddrToRadixkey to check the concrete type of nlri.
2017-05-23table: avoid unnecessary memory allocation about generating radix keyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-05-10*: support replace-peer-as (aka as-override)Wataru Ishida
we use the term replace-peer-as instead of as-override since openconfig is using it. cli ``` $ gobgp n add <neighbor-addr> as <asn> replace-peer-as ``` config ``` neighbor: config: peer-as: <asn> neighbor-address: <neighbor-addr> as-path-options: config: replace-peer-as: true ``` Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-05-10*: support remove private asWataru Ishida
cli ``` $ gobgp n add <neighbor-addr> as <asn> remove-private-as (all|replace) ``` config ``` neighbor: config: peer-as: <asn> neighbor-address: <neighbor-addr> remove-private-as: all ``` Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-05-10table: Advertise local-pref set by import policyTatsushi Demachi
At importing a path from an external peer, LOCAL_PREF can be set by an import policy but at exporting a best path to an internal peer, this learned, calculated LOCAL_PREF is never used and every time overwritten by a default value 100. According to RFC 4271 "5.1.5. LOCAL_PREF" and "9.1.1. Phase 1: Calculation of Degree of Preference", the learned value should be advertised to other internal peers. This fixes it by just removing resetting a non-local path's LOCAL_PREF by the default value.
2017-05-06cli: speed up showing a specific defined-setWataru Ishida
Signed-off-by: Wataru Ishida <ishida.wataru@lab.ntt.co.jp>
2017-04-27server: avoid unnecessary path clone with route serverFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-04-27table: avoid cloning path for withdrawFUJITA Tomonori
when a peer having lots of routes goes down, the cloning paths consume too much memory. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2017-04-21table: Fixed bug when looking up prefixes with a default route.lspgn
2017-04-04skip asn negotiation for BGP unnumbered peersISHIDA Wataru
since BGP unnumbered peers are typically trusted, skip asn negotiation for easy configuration. from configuration file: ```toml [[neighbors]] [[neighbors.config]] neighbor-interface = "eth0" ``` from cli: ``` $ gobgp neighbor add interface eth0 ``` Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-04table: handle paths with IPv4 NLRI and IPv6 nexthop properlyISHIDA Wataru
when a path has IPv4 NLRI and IPv6 nexthop, handle it in MPBGP manner. (use mp-reach-nlri path attribute instead of nexthop path attibute) Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-04table: fix bug of UpdatePathAttrs() with ipv6 link-local peerISHIDA Wataru
config.Neighbor.Transport.State.LocalAddress may have zone info and not be valid ip address format. Use PeerInfo.LocalAddress instead. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-04-04server: fix bug of wrongly set <nil> to PeerInfo.LocalAddressISHIDA Wataru
config.TransportState.LocalAddress may have zone info with ipv6 address like "fe80::x%eth0". In this case, net.ParseIP() returns <nil>, which leads to set <nil> to PeerInfo.LocalAddress. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2017-03-27server: fix table query with shorter-prefixes optionFUJITA Tomonori
$ gobgp g r 168.181.21.128/25 shorter-prefixes Network not in table $ gobgp g r 168.181.21.0/25 shorter-prefixes Network Next Hop AS_PATH Age Attrs *> 168.181.21.0/24 187.16.221.202 61580 04:17:41 [{Origin: i}] Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>