summaryrefslogtreecommitdiffhomepage
path: root/server
AgeCommit message (Collapse)Author
2015-07-27server: support ipv6 route zapiFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-07-26server: add zebra api support to configure linux network stackFUJITA Tomonori
Install route information to linux network stack via quagga's zebra. $ gobgpd --enable-zapi By default, 'unix:/var/run/quagga/zserv.api' for is used for zapi endpoint. It's not the case in your environment, use '--zapi-url' option. Note that only ipv4 support now. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-07-26server: generize broadcastFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-07-23server: make mrt rpc request reliableFUJITA Tomonori
Currently, if a mrt request sender doesn't read from bgpd some time, a message could be dropped. Instead, this makes bgpd keep messages in memory until they are read. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-07-22server: make monitor rcp request reliableFUJITA Tomonori
Currently, if a monitor request sender doesn't read from bgpd some time, a message could be dropped. Instead, this makes bgpd keep messages in memory until they are read. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
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-20server: enable buffering for grpc responseISHIDA Wataru
aimed at preventing drop of monitoring notification Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-15cli: support extended communityNaoto Hanaue
2015-07-14server: fix bug of active connectionISHIDA Wataru
also added scenario test to check active connection properly works Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-14server: fix fsm.keepaliveTicker raceFUJITA Tomonori
When fsm state goes to idle from established, fsm.keepaliveTicker is set to nil. This can happen before <-h.t.Dying() case in sendMessageloop(). This removes fsm.keepaliveTicker. Ticker is created locally. With this, a keepalive message could be sent from openconfirm to established with a shorter interval. But it should not break anything. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-07-13cli: add aspath prepend supportHiroshi Yokoi
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-05server/cli: support add/delete vpnv4/vpnv6 routesISHIDA Wataru
$ gobgp global rib add 1:10.0.0.1:1000:10.0.0.0/24 -a vpnv4 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
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-01packet: add AS_PATH validatorHiroshi Yokoi
2015-07-01cli: fix error output when routepolicy does not exist in routepolicy sub commandNaoto Hanaue
2015-07-01cli: support med actionNaoto Hanaue
2015-07-01server/cli: support add/delete EVPN_INCLUSIVE_MULTICAST_ETHERNET_TAG routeISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01server: don't set ttl to 1 when peer type is iBGPISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-07-01server: use pointerHiroshi Yokoi
2015-07-01server: apply distribute filter only when route server client propagates routesHiroshi Yokoi
2015-07-01scenario_test: add test case for distribute policy updateHiroshi Yokoi
2015-07-01cli: support distribute policyHiroshi Yokoi
2015-07-01server: gofmtHiroshi Yokoi
2015-07-01scenario_test: add test cases for distribute policyHiroshi Yokoi
2015-07-01scenario_test: remove policy config part from quagga-rsconfigHiroshi Yokoi
2015-07-01policy: distribute policyHiroshi Yokoi
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-07-01server: use ToApiStruct() to get api structureISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-25server: don't block when broadcastingISHIDA Wataru
add empty default case to avoid blocking Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-25server/api: add api to monitor changes of neighbor stateISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-25server/api: add api to monitor changes of best pathsISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-23server: fix bug of not sending paths added/deleted through grpcISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-21api: change ModPath() return value to Error from stream ErrorISHIDA Wataru
cut useless grpc communication and improve performance simple performance test result. rib.20150617.2000 is taken from http://archive.routeviews.org/ [before] $ time gomrt -i rib.20150617.2000 gomrt -i /vagrant/rib.20150617.2000 45.96s user 171.73s system 86% cpu 4:11.87 total [after] $ time gomrt -i rib.20150617.2000 gomrt -i /vagrant/rib.20150617.2000 11.95s user 76.17s system 74% cpu 1:58.38 total Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-17cli: add community subcommand to policy conditions and actionsNaoto Hanaue
2015-06-16cli: add aspath subcommand to policy conditionsNaoto Hanaue
2015-06-16cli: aggregate grpc communication interface associated with the policy to ↵Naoto Hanaue
api.policyDefinition
2015-06-16server: check if local table exists for a neighborISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-16server: add error handling for grpcISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-06-10server: avoid to be blocked due to accepted conn passingFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-10server: use write deadlineFUJITA Tomonori
Seems that write() is blocked forever when a connection is not cleanly closed. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-10server: clean up sendMessageloopFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-06-10server: server goroutin can't access to outstanding directlyFUJITA Tomonori
This could lead to a deadlock. Signed-off-by: FUJITA Tomonori <fujita.tomonori@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-05-27scenario_test: add policy test cases for new action and conditionsHiroshi Yokoi
2015-05-27server: fix File() misuse for md5 setsockoptFUJITA Tomonori
Fixed TCPListener.File() misuse. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-26server: fix File() misuse for syscall's setsockoptFUJITA Tomonori
We use TCPConn.File() for syscal.SetsockoptInt but File() sets the underlying os.File to blocking mode and returns a copy. It's not what we don't want. Instead, we access to private members with reflect... Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-26cli: add the add/del commands to policy of neighborNaoto Hanaue
% gobgp -u 10.0.255.1 neighbor 10.0.0.3 policy DefaultImportPolicy: ACCEPT DefaultExportPolicy: ACCEPT ImportPolicies: PolicyName policy1: StatementName st0: Conditions: PrefixSet: ps2 192.168.20.0/24 NeighborSet: ns0 10.0.0.2 10.0.0.3 AsPathLength: eq 5 MatchOption: ALL Actions: ACCEPT ExportPolicies: % gobgp -u 10.0.255.1 neighbor 10.0.0.3 policy add export policy0 reject % gobgp -u 10.0.255.1 neighbor 10.0.0.3 policy del import % gobgp -u 10.0.255.1 neighbor 10.0.0.3 policy DefaultImportPolicy: ACCEPT DefaultExportPolicy: REJECT ImportPolicies: ExportPolicies: PolicyName policy0: StatementName st0: Conditions: PrefixSet: ps0 192.168.0.0/16 16..24 NeighborSet: ns2 10.0.0.4 AsPathLength: MatchOption: ALL Actions: REJECT
2015-05-26cli: add the add/del commands to routepolicyNaoto Hanaue
% gobgp -u 10.0.255.1 policy routepolicy PolicyName policy0: StatementName st0: Conditions: PrefixSet: ps0 192.168.0.0/16 16..24 NeighborSet: ns2 10.0.0.4 AsPathLength: MatchOption: ALL Actions: REJECT % gobgp -u 10.0.255.1 policy routepolicy add policy1 st0 conditions --prefix ps2 --neighbor ns0 --aspath-len eq,5 --option all % gobgp -u 10.0.255.1 policy routepolicy add policy1 st0 actions --route-action accept % gobgp -u 10.0.255.1 policy routepolicy del policy0 % gobgp -u 10.0.255.1 policy routepolicy PolicyName policy1: StatementName st0: Conditions: PrefixSet: ps2 192.168.20.0/24 NeighborSet: ns0 10.0.0.2 10.0.0.3 AsPathLength: eq 5 MatchOption: ALL Actions: ACCEPT