summaryrefslogtreecommitdiffhomepage
path: root/server
AgeCommit message (Collapse)Author
2015-05-12server: add logging about peer up/downFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-12fsm: fix homemade readAll()FUJITA Tomonori
Fix a received data corruption bug when a partial read happens. Let's use io.ReadFull() rather than the homemade one. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-11cli: add the commands for the policy of the prefix operationNaoto Hanaue
[show] % gobgp -u 10.0.255.1 policy prefix Name Prefix MaskRange ps0 192.168.0.0/16 16..24 ps1 192.168.20.0/24 192.168.200.0/24 ps2 192.168.20.0/24 ps3 2001:0:10:2::/64 64..128 ps4 2001:0:10:20::/64 2001:0:10:200::/64 ps5 2001:0:10:20::/64 % gobgp -u 10.0.255.1 policy prefix ps1 Address/Mask MaskRange 192.168.20.0/24 192.168.200.0/24 [add] % gobgp -u 10.0.255.1 policy prefix add ps8 172.16.0.0/16 16..24 % gobgp -u 10.0.255.1 policy prefix add ps8 172.32.0.0/16 [del] % gobgp -u 10.0.255.1 policy prefix del ps2 192.168.20.0/24 % gobgp -u 10.0.255.1 policy prefix del ps3 % gobgp -u 10.0.255.1 policy prefix del all
2015-05-11server: don't path information to the same AS number peerFUJITA Tomonori
fix the above issue with route server use case. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-11server: fix FSMHandler's holdTimer raceFUJITA Tomonori
FSMHandler's holdTimer could be accessed by rx goroutine before it's initialized. Let's use channel rather than sharing time.Timer pointer. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-10api/gobgp: show multiprotocol capabilities in detailISHIDA Wataru
/home/vagrant% gobgp -u 192.168.10.4 neighbor 192.168.10.2 BGP neighbor is 192.168.10.2, remote AS 65001 BGP version 4, remote router ID 192.168.10.2 BGP state = BGP_FSM_ESTABLISHED, up for 00:12:57 BGP OutQ = 0, Flops = 0 Neighbor capabilities: MULTIPROTOCOL(IP,UNICAST): advertised MULTIPROTOCOL(L2VPN,EVPN): advertised MULTIPROTOCOL(IP,ENCAP): advertised MULTIPROTOCOL(IP,ROUTE_TARGET_CONSTRTAINS): received ROUTE_REFRESH: advertised FOUR_OCTET_AS_NUMBER: advertised and received Message statistics: Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 0 0 Keepalives: 26 26 Route Refesh: 0 0 Discarded: 0 0 Total: 27 27 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-05-08cli: show configured and negotiated holdtime and keepalive intervalFUJITA Tomonori
fujita@ubuntu:~/git/gobgp/gobgp$ go run main.go neighbor 10.0.255.1 BGP neighbor is 10.0.255.1, remote AS 65001 BGP version 4, remote router ID 192.168.0.1 BGP state = BGP_FSM_ESTABLISHED, up for 00:11:55 BGP OutQ = 0, Flops = 0 Hold time is 30, keepalive interval is 10 seconds Configured hold time is 90, keepalive interval is 30 seconds Neighbor capabilities: MULTIPROTOCOL: advertised and received ROUTE_REFRESH: advertised and received FOUR_OCTET_AS_NUMBER: advertised and received ROUTE_REFRESH_CISCO: received Message statistics: Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 1 1 Keepalives: 72 73 Route Refesh: 0 0 Discarded: 0 0 Total: 74 75 Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-08server: keepalive interval should be honor a negotiated hold timeFUJITA Tomonori
If a negotiated hold time is smaller than a configured hold time, we use one third of the negotiated hold time for a keepalive interval. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-05-01table: add support for route target constraint nlriISHIDA Wataru
add rtc route $ gobgp global rib add 65000 77 -a rtc check it $ gobgp global rib -a rtc Network Next Hop AS_PATH Age Attrs *> 65001:65000:75 0.0.0.0 [65001] 00:15:35 [{Origin: IGP}] Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-27server: clean up import filtering codeISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-27table: add AS loop detectionISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-27table: make table.ProcessMessage a functionISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-27server: don't try to connect right after fsm state becomes activeISHIDA Wataru
solves gobgpd <=> gobgpd connectivity problem. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-25table: add support for encapsulation nlriISHIDA Wataru
add encap end point route(10.0.0.1) with vni 20 $ gobgp global rib add 10.0.0.1 20 -a encap check it $ gobgp global rib -a encap Please specify one command of: add or del Network Next Hop AS_PATH Age Attrs *> 10.0.0.1 0.0.0.0 [64512] 00:00:01 [{Origin: IGP} {Encap: < VXLAN | color: 20 >}] Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-17server: bug fix of REQ_LOCAL_RIB handlingISHIDA Wataru
When route family is not supported for a peer's local rib, gobgpd dies with following message. $ gobgp show neighbor 10.0.0.1 local evpn > panic: interface conversion: interface is nil, not *api.Destination this patch fix this. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-15table: sort peers/routes at client side instead of bgpd sideISHIDA Wataru
peer/route sorting is for pretty priting. do it at the client side. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-15server: support EVPN path addition/deletionISHIDA Wataru
2015-04-15api: add a method to convert internal structs to protobuf structsISHIDA Wataru
- add ToApiStruct() for convertion of internal structs to protobuf structs to avoid ugly convertion by json.Marshal() && json.Unmarshal() - move grpc server code under /server instead of /api - update proto file to include more detailed path information Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-14api: use gRPC instead of RESTISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-04api/server: add apis to add/delete routes to/from global ribISHIDA Wataru
add: curl -X POST -d prefix=10.0.0.0/24 http://localhost:8080/v1/bgp/global/ipv4 delete: curl -X DELETE -d prefix=10.0.0.0/24 http://localhost:8080/v1/bgp/global/ipv4 Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-04server: clone paths before storing to adj-rib-outISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-04server: remove nexthop field from Path struct and make Path.setNexthop publicISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-04server: use net.SplitHostPortISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-04server: fix path originator checkISHIDA Wataru
withdrawal paths don't have nexthop path attribute. use GetSource() instead. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-04-03server: show peers in the sorted orderFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-02server: go fmt fixFUJITA Tomonori
somehow the bad code was merged. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-02api: simplify adj-in/out json formatFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-01peer: make applyPolicies into peer's methodHiroshi Yokoi
2015-03-25server: support active connectionISHIDA Wataru
md5 auth is not supported yet for active conntion Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-03-25server: don't run fsm for global ribISHIDA Wataru
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
2015-03-24policy: test policy existenceHiroshi Yokoi
2015-03-24policy: apply import/export policyHiroshi Yokoi
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20peer: don't send back routes to the source.ISHIDA Wataru
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20api/cli: add show global commandISHIDA Wataru
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20peer: update pathattr for non-route-server clientISHIDA Wataru
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-20server: add Global Rib to support normal BGP functionalityISHIDA Wataru
We handle Global Rib as a Peer. Normail (non route server client) peer has one sibling, Global Rib peer. Global Rib peer has all normal peers as siblings. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-19table: remove unnecessary distinction of pathsISHIDA Wataru
struct Path has a flag which can tell whether the path is withdrawal path or not. so table.ProcessPaths() needs not to return withdrawal path and non-withdrawal path separetly. this removes such unnecessary distinction. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-14server: fix handing of a connection closed by peerFUJITA Tomonori
When a peer closed a connection (e.g. after we send a notification), rx goroutine finds it immediately since read() returns an error and kills tomb. The problem is that tx goroutine doesn't check if tomb Dying() so tx doesn't die until tx tries to write keepalive to the socket (and it doesn't never happen if keepalive interval is zero). So fsm does't become idle shortly. This fixes tx to check Dying() and makes sure that it sends notification messages befor dying if they exists. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-10server: add helper function to send paths to siblingsFUJITA Tomonori
kill duplicated code. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-09server: handle the route family configuration mismatch with peerFUJITA Tomonori
Even if a peer is configured to support v4/v6, the peer might send only v4 capability with Open message. In this case, we have to send only ipv4 info. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-08server: adj-in/out supports route families rather than v4/v6FUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-08server: support multiple route familes per peerFUJITA Tomonori
You can configure like the following: [Global] As = 65032 RouterId = "192.168.255.1" [[NeighborList]] NeighborAddress = "10.0.255.1" PeerAs = 65001 [NeighborList.RouteServer] RouteServerClient = true [[NeighborList.AfiSafiList]] AfiSafiName = "ipv4-unicast" [[NeighborList.AfiSafiList]] AfiSafiName = "ipv6-unicast" Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-07rest: support show table with specified route familyFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06server: remove rf in ServerMsgFUJITA Tomonori
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06table: NewTableManager takes route familiesFUJITA Tomonori
NewTableManager creates tables for only specified route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06server: check route refresh afi and safiFUJITA Tomonori
If it's not valid, log a warning and ignore. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-06table: remove RF from PeerInfoFUJITA Tomonori
Cleanup for supporting multiple route families. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-03update the whole code for the latest openconfig yang filesFUJITA Tomonori
The modified openconfig yang files are available at: https://github.com/osrg/yang/tree/gobgp Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-03-03config: remove time.Time in BgpNeighborCommonStateTypeFUJITA Tomonori
This is part of work to remove time.Time in bgp_config.go since no nice way to represent time.Time with yang. We replace time.Time with int64. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-02-27server: implement softresetin and softresetFUJITA Tomonori
soft-reconfiguration inbound Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>