summaryrefslogtreecommitdiffhomepage
path: root/table
AgeCommit message (Collapse)Author
2015-09-08*: kill bgp.NLRInfo and bgp.WithdrawnRouteISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-09-01zebra: distribute routes from zebraHiroshi Yokoi
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
2015-08-31server: support route reflector behaviorISHIDA Wataru
scenario_test is also added Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-29table: disable merging NLRIs if we don't have many NLRIsFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-29table: merge NLRIs in one message in hard wayFUJITA Tomonori
Actually comapring all the attributes to see if packing NLRIs. It takes long but gobgpd sends minimum messages. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-29Revert "table: increase the possibiliby of many NLRIs in one update message"FUJITA Tomonori
This reverts commit 51494759aded7098e151869e66dd5b2c4d96ecfd. gobgpd still sends too more updates rather than Quagga. Revert this.
2015-08-27api: add route family field to struct PathISHIDA Wataru
we can't parse Path.nlri field (whose type is []byte) without route family. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-26table: increase the possibiliby of many NLRIs in one update messageFUJITA Tomonori
Without hurting the performance (the latency) much, GetBestPathList() tries to sort Paths in the order that many routes could be packed into one update message. I did an experiment that the full routes are pushed to gobgpd (via mrt), then another peer connects to gobgpd. Without this patch, gobgpd sends 550,958 update messages to another peer. With this patch, gobgpd sends 250,606 update messages. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-26table: remove the limit of the number of packed NLRI in one messageFUJITA Tomonori
With experiments about the full routes, we hit the limit. Let's remove it. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-25*: better log msgISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-24pack multiple NLRIs into one BGP update messageFUJITA Tomonori
With this patch, bobgpd packs multiple NLRIs into one BGP update message (IOW, multiple paths into one update message). We do only with ipv4 since we could have lots of routes. If you don't have lots, it's not worth having the complicated logic for such route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-21speed up showing ipv6 routesFUJITA Tomonori
same as ipv4. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-20server: fix for sorting adj-in/out routesFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-19scenario_test: add ext-community action testHiroshi Yokoi
2015-08-19gobgp: improve the time to show routesFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-19vrf: withdraw route-target constraint routes when deleting a vrfISHIDA Wataru
another partial implementation of RFC4686 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-19vrf: advertise route-target constraint routes when adding a vrfISHIDA Wataru
partial implementation of RFC4686 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-19table: fix best path selection which considers local asnISHIDA Wataru
TableManager.localAsn wasn't used. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-19table: withdraw self-generated vrfed routes when a vrf deletedISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-13policy: support adding extCommunity actionFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-12support rpki validationFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-12table: remove unnecessary else if conditionISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-09policy: make AS Path match regular expression work as quagga and ciscoFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-08-08*: kill protobuf path structureISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-08server: support vrfISHIDA Wataru
to add/delete vrf $ gobgp vrf [add|del] <vrf-name> rd <rd> rt [import|export|both] <rt>... show vrf $ gobgp vrf to add/delete a path to a specific vrf $ gobgp vrf <vrf-name> rib [add|del] <prefix> -a <address-family> show paths contained in a specific vrf $ gobgp vrf <vrf-name> rib -a <address-family> Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-05table: clean upISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-05server/table: support mac mobilityISHIDA Wataru
RFC7432 15. MAC Mobility Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-05table: publicate Table.getDestination()ISHIDA Wataru
we use this later from server module Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-05path: return Extendedcommunityinterface rathar than interface{}ISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-08-05config: change the structure of Neighbor.RouteServer as the ↵Naoto Hanaue
Neighbor.RouteReflector
2015-08-03mrt: merge gomrt to gobgp cli commandISHIDA Wataru
Usage $ gobgp mrt inject global <filename> [<count>] Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-31config: use the latest openconfig yangHiroshi Yokoi
2015-07-22mrt: support mrt dumpISHIDA Wataru
$ gobgp mrt dump 10 -o ./dump Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-13server/table: support iBGP behaviorISHIDA Wataru
also added scenario_test Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-13table: iBGP support in PrependAsn()ISHIDA Wataru
The length of an aspath attribute's value from iBGP peer can be 0. This patch fixes PrependAsn() to handle such an aspath attribute. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-11policy: support extended community conditionNaoto Hanaue
2015-07-11policy: support aspath prepend actionHiroshi Yokoi
2015-07-03server: bug fix of extra as-path prependingISHIDA Wataru
When gobgp originates a route, the generated route had incorrect as-path. this patch fix this bug. Scenario test is also added to check this. [before] $ gobgp neighbor global rib Network Next Hop AS_PATH Age Attrs *> 10.0.1.0/24 192.168.10.3 65001 00:03:20 [{Origin: IGP} {Med: 0}] *> 10.0.2.0/24 192.168.10.4 65002 00:03:36 [{Origin: IGP} {Med: 200}] *> 10.10.0.0/24 0.0.0.0 65000 00:03:37 [{Origin: IGP}] $ gobgp neighbor 192.168.10.5 adj-out Network Next Hop AS_PATH Attrs 10.0.1.0/24 192.168.10.2 65000 65001 [{Origin: IGP}] 10.0.2.0/24 192.168.10.2 65000 65002 [{Origin: IGP}] 10.10.0.0/24 192.168.10.2 65000 65000 [{Origin: IGP}] [after] $ gobgp neighbor global rib Network Next Hop AS_PATH Age Attrs *> 10.0.1.0/24 192.168.10.3 65001 00:03:20 [{Origin: IGP} {Med: 0}] *> 10.0.2.0/24 192.168.10.4 65002 00:03:36 [{Origin: IGP} {Med: 200}] *> 10.10.0.0/24 0.0.0.0 00:03:37 [{Origin: IGP}] $ gobgp neighbor 192.168.10.5 adj-out Network Next Hop AS_PATH Attrs 10.0.1.0/24 192.168.10.2 65000 65001 [{Origin: IGP}] 10.0.2.0/24 192.168.10.2 65000 65002 [{Origin: IGP}] 10.10.0.0/24 192.168.10.2 65000 [{Origin: IGP}] Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-03server: update path attrs when sending update msg outISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01table: remove unused field/funcISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01table: check paths' equivalence deeperISHIDA Wataru
if we add same path multiple times by the following gobgp cli commands, $ gobgp global rib add 10.0.0.0/24 $ gobgp global rib add 10.0.0.0/24 $ gobgp global rib add 10.0.0.0/24 current implementation sends multiple update messages to peers even through the content of the path is same. This is due to the shallow equivalence checking. This patch checks paths' equivalence deeper by adding Equal() method to Path. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01table: simplify Path.getPathAttr()ISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01table: refactor Path/Destination/Table structISHIDA Wataru
Path/Destination/Table was defined as interface. Simplify by making them normal struct. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-26policy: add unit test for med action and bug fixNaoto Hanaue
2015-06-26policy: support med actionNaoto Hanaue
2015-06-23table: use isLocal() to check if path is locally generatedISHIDA Wataru
original code assumes locally generated path's source is nil, which is not true. use isLocal() instead. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-23table: add Equal() method to compare PeerInfoISHIDA Wataru
this patch fixes the wrong behavior shown below $ gobgp global rib add 10.0.0.0/24 $ gobgp global rib del 10.0.0.0/24 $ gobgp global rib Network Next Hop AS_PATH Age Attrs *> 10.0.0.0/24 0.0.0.0 65000 00:05:48 [{Origin: IGP}] since we used to compare path's source by PeerInfo's pointer, locally originated routes is considered as a different route even if they have same prefix. this patch introduce Equal() method to compare PeerInfo's content and fix this wrong behavior. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-09server: kill peerMsgFUJITA Tomonori
Peers send and receive messages via channels, which could lead to a deadlock. With this patch, multiple goroutines are used for network I/Os per peer but one goroutine handle all ribs (including the global rib). So there is no messages via channels between peers. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-02path: stop checking AS length in the AS4_PATH attributeHiroshi Yokoi
2015-06-02packet: return aspath length based on the segment type.Hiroshi Yokoi