432 Commits
Author SHA1 Message Date
ISHIDA Wataru e849b95b11 cli/server: fix address family handling
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-02-02 12:47:35 +09:00
ISHIDA Wataru 21b7301e04 server: fix soft-reset-in to handle in-policy change properly
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-02-01 23:11:12 +09:00
ISHIDA Wataru 866edbb8d6 server: don't handle soft-reset-out for non-established peer
handling soft-reset-out for non-established peer causes filling
adj-rib-out with routes not actually advertised

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 23:34:35 +09:00
ISHIDA Wataru 7c341b9f79 server: apply filterpath and export-policy to new best paths
dropPeerAllRoutes doesn't always produce withdrawals.
When there are alternative routes, new best paths will be advertised.
We must apply filterpath and export-policy to these routes.

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 23:34:32 +09:00
ISHIDA Wataru 498400adad api: fix typo s/advertized/advertised
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 16:44:21 +09:00
ISHIDA Wataru 2adf4c392e fsm: remove FSM.confedCheck
no need to make this FSM's field.

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 11:38:27 +09:00
ISHIDA Wataru b05da5ddc9 server: add negotiated holdtime/keepalive-interval in api struct
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 11:38:27 +09:00
ISHIDA Wataru 0ce9409f17 server: remove a redundant FSM negotiatedHoldtime field
use config.TimerState struct instead

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-29 11:38:24 +09:00
FUJITA Tomonori 8285553257 rpki: make monitor API's reason explicit about manual validate
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-25 05:26:45 -08:00
ISHIDA WataruandFUJITA Tomonori d94f5d2c03 config: add openconfig identity structs in bgp_configs.go
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-25 04:57:11 -08:00
ISHIDA WataruandFUJITA Tomonori 3817b82f9d fsm: add type FsmStateReason to track reason of state transition
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-25 04:57:11 -08:00
ISHIDA WataruandFUJITA Tomonori 38bd31856b fsm: remove redundant connection close
we don't need to close here because we are signaling through h.errorCh

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-25 04:57:11 -08:00
ISHIDA WataruandFUJITA Tomonori f2ceaa0cf9 server: log received notification
fsm doesn't pass notification messages to peer since
5c835fcc4f

log received notifications in fsmhandler.

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-25 04:57:11 -08:00
ISHIDA WataruandFUJITA Tomonori cca91da0df config: add go type of embeded enums defined in openconfig
these types are embeded enums of openconfig and were left uint32

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-25 04:57:11 -08:00
FUJITA Tomonori 4ad751b4f0 rpki: remove unintented debug code
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-24 08:50:50 -08:00
FUJITA Tomonori c955e325d3 rpki: implement roa life timeout
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-24 08:29:47 -08:00
FUJITA Tomonori bc025e40a5 rpki: softreset delete all related ROAs
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-24 06:15:31 -08:00
FUJITA Tomonori 0986a67e07 rpki: improve statistics API
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-20 07:09:11 -08:00
Eiichiro Watanabe b42e8d9a9f server: fix cache reset handling 2016-01-20 10:35:31 +09:00
FUJITA Tomonori 70fae5c8cc rpki: add reason to rpki monitor api
tells a reason why notificaiton was sent, withdraw, peer down, and others

Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-17 09:26:56 -08:00
FUJITA Tomonori 7a5cf6a2b9 rpki: add rpki validate API
$ gobgp rpki validate

validates all the paths in the table with the current ROAs.

Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-17 07:46:35 -08:00
FUJITA Tomonori f4c4099418 update rpki monitor API
- handle withdraw
- added some new info (peer address, timestamp, aspath attribute)

Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-17 06:21:23 -08:00
ISHIDA Wataru 6403c80663 server: reduce number of path.Clone() call to reduce memory footprint
the result of memory profile (500 route-server-clients each of them
advertises 100 routes)

before:
(pprof) top5
3913.02MB of 3978.69MB total (98.35%)
Dropped 148 nodes (cum <= 19.89MB)
Showing top 10 nodes out of 11 (cum >= 21MB)
flat       flat%   sum%        cum   cum%
2970.30MB 74.66% 74.66%  2975.80MB 74.79% github.com/osrg/gobgp/server.filterpath
810.09MB  20.36% 95.02%   810.59MB 20.37% github.com/osrg/gobgp/table.(*AdjRib).Update
115.60MB   2.91% 97.92%   119.10MB  2.99% github.com/osrg/gobgp/table.createUpdateMsgFromPath
10MB       0.25% 98.17%  1878.02MB 47.20% github.com/osrg/gobgp/server.(*BgpServer).propagateUpdate
4.50MB     0.11% 98.29%   144.60MB  3.63% github.com/osrg/gobgp/table.CreateUpdateMsgFromPaths

after:
(pprof) top5
1259.49MB of 1284.27MB total (98.07%)
Dropped 175 nodes (cum <= 6.42MB)
Showing top 10 nodes out of 26 (cum >= 36.51MB)
flat     flat%  sum%        cum   cum%
975.81MB 75.98% 75.98%   976.31MB 76.02% github.com/osrg/gobgp/table.(*AdjRib).Update
198.67MB 15.47% 91.45%   208.17MB 16.21% github.com/osrg/gobgp/table.createUpdateMsgFromPath
22MB      1.71% 93.16%       22MB  1.71% github.com/osrg/gobgp/packet.(*IPAddrPrefix).Serialize
20MB      1.56% 94.72%   707.19MB 55.07% github.com/osrg/gobgp/server.(*BgpServer).propagateUpdate
13.50MB   1.05% 95.77%    13.50MB  1.05% github.com/osrg/gobgp/table.NewPath

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-16 18:25:35 +09:00
ISHIDA Wataru 0cf8045e99 policy: introduce policy option infra
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-16 18:25:18 +09:00
ISHIDA Wataru 40ce51137a table: remove unnecessary copy of path attributes
the result of memory profile (500 route-server-clients each of them advertises
100 routes)

before:
(pprof) top5
9330.48MB of 9367.53MB total (99.60%)
Dropped 157 nodes (cum <= 46.84MB)
Showing top 10 nodes out of 17 (cum >= 9334.17MB)
flat       flat%   sum%        cum   cum%
6163.04MB 65.79% 65.79%  6163.04MB 65.79% github.com/osrg/gobgp/table.NewPath
1155.05MB 12.33% 78.12%  7302.59MB 77.96% github.com/osrg/gobgp/table.(*Path).Clone
986.31MB  10.53% 88.65%  1388.81MB 14.83% github.com/osrg/gobgp/table.(*AdjRib).Update
402.51MB   4.30% 92.95%   402.51MB  4.30%  fmt.Sprintf
402.51MB   4.30% 97.24%   402.51MB  4.30% net.parseIPv4

after:
(pprof) top
3913.02MB of 3978.69MB total (98.35%)
Dropped 148 nodes (cum <= 19.89MB)
Showing top 10 nodes out of 11 (cum >= 21MB)
flat       flat%   sum%        cum   cum%
2970.30MB 74.66% 74.66%  2975.80MB 74.79% github.com/osrg/gobgp/server.filterpath
810.09MB  20.36% 95.02%   810.59MB 20.37% github.com/osrg/gobgp/table.(*AdjRib).Update
115.60MB   2.91% 97.92%   119.10MB  2.99% github.com/osrg/gobgp/table.createUpdateMsgFromPath
10MB       0.25% 98.17%  1878.02MB 47.20% github.com/osrg/gobgp/server.(*BgpServer).propagateUpdate
4.50MB     0.11% 98.29%   144.60MB  3.63% github.com/osrg/gobgp/table.CreateUpdateMsgFromPaths

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-16 18:22:13 +09:00
ISHIDA Wataru b344eb3777 table: kill unused field medSetByTargetNeighbor
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-16 16:25:24 +09:00
FUJITA Tomonori 49ec4a328f rpki: fix serial notify handling
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-14 22:26:54 -08:00
FUJITA Tomonori 3f0fc3ccc9 server: fix fixed timeout for write
using 30 secs is a bad idea. Let's use negotiated holdtime
instead. But I think that we should not use timeout for write. when a
timeout for write expires, we shuld just check:

a) if the conneciton is still valid
b) a peer is not de-configured

a) nor b) is not the case, we should try write again.

Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-13 05:06:24 -08:00
ISHIDA WataruandFUJITA Tomonori af2703af93 server: don't assume the existence of multiprotocol capability
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-12 11:00:34 +09:00
ISHIDA Wataru d94bb930dc api: support bmp configuration
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 22:52:15 +09:00
ISHIDA Wataru aff1c244ad bmp: use watcher infra to implement bmp feature
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 22:51:23 +09:00
ISHIDA Wataru f4c07da881 server: add REQ_BMP_NEIGHBORS api for internal bmp use
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 22:43:01 +09:00
ISHIDA WataruandFUJITA Tomonori cc8d0fd748 config: refactor config structure
- change config variable name to chaincase from camelcase
- remove unnecessary wrapper structs which only contain one slice field

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 05:17:57 -08:00
ISHIDA WataruandFUJITA Tomonori b0fbcc6b1b config: change enum value type to string for ease of configuration
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 05:17:57 -08:00
ISHIDA WataruandFUJITA Tomonori 26c03bb779 tools: avoid adding a new option to bgpyang2golang.py and fix gobgp.yang
pyang has an internal flag "multiple_modules" to handle multiple yang modules.
use it instead of introducing a new option --augment

also, fix warnings and errors in gobgp.yang which were there but not has been
detected for a while due to the usage of --augment.
by using "multiple_modules" flag, pyang detected them.

most notable error is wrong usage of list, which needs a key in its
substatement.

this patch adds key to some of them, and for others uses leaf-list
instead.

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-09 05:17:57 -08:00
ISHIDA WataruandFUJITA Tomonori 43610ebc6c server: fix storing received open msg
Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-06 14:15:42 +09:00
FUJITA Tomonori 302632715c rpki: add monitor command support
monitor the change of rpki validation results:

$ gobgp monitor rpki

Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-06 12:40:17 +09:00
FUJITA Tomonori 784578ec55 rpki: fix withdraw
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-05 07:33:03 -08:00
FUJITA Tomonori dd64daeade rpki: preparation for stream API
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-05 07:13:38 -08:00
FUJITA Tomonori 1df56b0786 rpki: handle withdraw
Signed-off-by: FUJITA Tomonori <[email protected]>
2016-01-04 05:26:31 -08:00
ISHIDA Wataru 5c835fcc4f server: don't put keepalive & notification to incoming ch
these msgs are garbage for server's main loop and just wasting channel
buffer.

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-04 16:46:28 +09:00
ISHIDA Wataru afcd2e72fb server: introduce fastpath for fsm state change
for robust fsm handling

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-04 16:46:28 +09:00
ISHIDA Wataru ce1d27ba8c server: handle open message only in fsm
we don't need to spread this handling to peer.go and server.go

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-04 16:46:28 +09:00
ISHIDA Wataru 013c912285 server: randomize trigger of active connect
fix connectivity issue when both bgpd is gobgpd

Signed-off-by: ISHIDA Wataru <[email protected]>
2016-01-04 16:46:28 +09:00
ISHIDA Wataru 84c164a89c bmp: detect bmp connection lost earlier and recover earlier
Signed-off-by: ISHIDA Wataru <[email protected]>
2015-12-30 01:42:46 +09:00
ISHIDA Wataru 30a072030d server: just send global rib once when bmp connection is initialized
Signed-off-by: ISHIDA Wataru <[email protected]>
2015-12-30 01:42:46 +09:00
ISHIDA Wataru d01c1586b9 config: use viper and support multiple configuration formats
// toml by default
$ gobgpd -f gobgpd.toml

// use -t to change configuration type
$ gobgpd -t yaml -f gobgpd.yaml

Signed-off-by: ISHIDA Wataru <[email protected]>
2015-12-29 14:47:06 +09:00
ISHIDA Wataru 58946b7924 config: make config/state variable name simple
Signed-off-by: ISHIDA Wataru <[email protected]>
2015-12-28 21:02:03 +09:00
FUJITA Tomonori 7a2b395116 add MOD_PATH API
Handle only one route unlike MOD_PATHS API. When the API returns an
uuid when a route is created. The uuid can be used to remove the route
later.

Signed-off-by: FUJITA Tomonori <[email protected]>
2015-12-26 19:24:46 -08:00
FUJITA Tomonori 01157e466a rename ModPath to ModPaths
ModPath API to modify multiple paths so let's use more an appropriate name.

Signed-off-by: FUJITA Tomonori <[email protected]>
2015-12-25 20:58:18 -08:00