Wataru Ishida
d46da74d4f
policy: support large-community match/action
...
close #1133
Signed-off-by: Wataru Ishida <[email protected] >
2016-10-10 05:18:17 +00:00
Wataru Ishida and FUJITA Tomonori
614746ca11
*: support long lived graceful restart
...
Signed-off-by: Wataru Ishida <[email protected] >
2016-10-09 07:18:13 -07:00
FUJITA Tomonori
d79b23967a
server: add vrf support to bestpath watch
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-09-30 20:44:12 -07:00
Wataru Ishida
c790472dad
server/table: don't modify/delete path attributes for route server client
...
RFC7947 2.2 says
Optional recognized and unrecognized BGP attributes, whether transitive
or non-transitive, SHOULD NOT be updated by the route server
(unless enforced by local IXP operator configuration) and SHOULD be passed
on to other route server clients
Signed-off-by: Wataru Ishida <[email protected] >
2016-09-16 09:45:24 +00:00
Wataru Ishida and FUJITA Tomonori
3235c0618c
api/cli: kill cmd package custom path/destination structs
...
reuse table package
Signed-off-by: Wataru Ishida <[email protected] >
2016-08-25 15:53:14 +09:00
Peng Xiao and FUJITA Tomonori
b0bead46c8
fixed some misspell error
...
Signed-off-by: Peng Xiao <[email protected] >
2016-08-21 08:29:42 +09:00
FUJITA Tomonori
43dc07d723
move gRPC-related code for REQ_ADD_PATH and REQ_DELETE_PATH to grpc_server.go
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-07-21 13:23:15 +09:00
FUJITA Tomonori
f27afac154
move gRPC-related code in path.go and destination.go to grpc_server.go
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-07-20 04:25:25 +09:00
FUJITA Tomonori
b8f83f8ede
drop unknown optional non-transitive attributes
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-06-13 20:41:40 +09:00
ISHIDA Wataru and FUJITA Tomonori
5c7df67266
server/table: support bgp multipath
...
This patch adds multiPathList field to watcherEventBestPathMsg and
fills it when global.use-multiple-paths.config.enable = true
Following patches add support injecting multipath to zebra and
monitoring it via gRPC
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-06-06 12:43:20 +09:00
ISHIDA Wataru and FUJITA Tomonori
222d4dba8e
table: return default value(100) when local-pref attr doesn't exist
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-06-06 12:43:20 +09:00
FUJITA Tomonori
ebb2c9727a
table: fix to compare new best path with old best path
...
The current code uses Path.Equal(), which just check out if pathes are
idential. However, it doesn't work for two cloned pathes of a path
(soft update in case).
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-05-29 19:42:47 +09:00
ISHIDA Wataru
0dbf1d87cb
policy: add local-pref action
...
$ gobgp policy statement st01 add action local-pref 110
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-05-25 02:53:42 +00:00
FUJITA Tomonori
7c42e295e2
add collector feature
...
dump the update messages and the state change of peers into influxdb:
[collector.config]
url = "http://localhost:8086 "
db-name = "gobgp"
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-05-23 20:32:47 +09:00
ISHIDA Wataru and FUJITA Tomonori
31342564c9
table: fix UpdatePathAttrs() to obey RFC4684
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-05-23 09:46:53 +09:00
ISHIDA Wataru
43f3d009d6
server: fix not to modify Transport.Config
...
modify Transport.State instead
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-04-27 10:32:42 +00:00
ISHIDA Wataru and FUJITA Tomonori
2b60347cfd
path: improve Path.String()
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-04-20 13:14:09 +09:00
FUJITA Tomonori
311324fab8
move packet/*.go to packet/bgp/*.go for Go's convention
...
Later, we move non-bgp protocol stuff like mrt under their own
direcotries.
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-03-31 13:19:17 +09:00
ISHIDA Wataru
77f0e6acf1
table: support advertising local route with specified nexthop via eBGP
...
we support this for iBGP. why not for eBGP.
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-03-15 22:44:14 +09:00
FUJITA Tomonori
c46d6be52f
table: use raw data for age instead of duration
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-03-02 08:44:39 +09:00
ISHIDA Wataru and FUJITA Tomonori
a45bd1f290
api: add neighbor-ip field to grpc Path message
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-03-02 03:22:28 -08:00
FUJITA Tomonori
d6998affcf
cli: delete duplicated code
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-02-29 16:53:01 -08:00
ISHIDA Wataru and FUJITA Tomonori
0b78f57ccd
config/server: support per-peer asn
...
you can override `global.config.as` by `neighbor.config.local-as`
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-02-29 15:59:42 -08:00
Naoto Hanaue and FUJITA Tomonori
a53d194505
ops: fix and integration the attribute name that indicates the route received from an external resource
2016-02-27 03:47:00 -08:00
FUJITA Tomonori
ae41a9f07e
table: sort path attributes
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-02-25 05:55:28 -08:00
FUJITA Tomonori
b387a7b29c
cli: sort Flowspec components
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-02-24 04:31:21 -08:00
FUJITA Tomonori
00a592ef3a
table: sort Flowspec components
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-02-24 14:13:22 +09:00
Naoto Hanaue and FUJITA Tomonori
b67befc30a
ops: maintenance of two-way route exchange
2016-02-19 21:14:59 -08:00
FUJITA Tomonori
9f54df2208
table: fix gracefull restart regression
...
eor path needs a filter map. Otherwise gobgpd crashes.
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-02-12 10:18:13 +09:00
ISHIDA Wataru and FUJITA Tomonori
023a498e4a
server: support graceful-restart helper-speaker behavior
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-02-10 23:41:44 -08:00
ISHIDA Wataru and FUJITA Tomonori
36f8911cee
table: support sending/receiving EOR msg
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-02-10 22:15:04 -08:00
ISHIDA Wataru
c9959836a6
table: add source-asn and source-id to api struct
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2016-02-07 06:31:48 +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
FUJITA Tomonori
1e564f2d30
table: fix NewBitmap's size calculation
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2016-01-17 06:01:49 -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
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
ISHIDA Wataru and FUJITA 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 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
ISHIDA Wataru
d6148c75a3
api: refactor afisafi api
...
remove unused fields
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-12-15 18:26:32 +09:00
ISHIDA Wataru and FUJITA Tomonori
a719a3de6e
server/table: use only one rib for multiple route server clients
...
speed up and reduce memory footprint
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-12-08 14:45:37 +09:00
ISHIDA Wataru and FUJITA Tomonori
093945ee30
table: sort all known paths instead of just selecting best
...
this is a preparation for add-path recv/send feature
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-12-02 09:53:38 +09:00
ISHIDA Wataru and FUJITA Tomonori
d53a5d11d9
table: fix local-pref handling for external peer
...
remove a local-pref path attribute when peer is external and
not a confederation member.
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-11-08 05:05:36 -08:00
ISHIDA Wataru and FUJITA Tomonori
2db916a4d3
table: use a local configured med/local-pref path-attr if exists
...
If a path is generated locally and it has a med/local-pref path attribute,
don't remove or alter that.
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-11-08 05:05:36 -08:00
FUJITA Tomonori
d6360e2b32
server: fix RPKI verification to handle ASPATH ATTR TYPE properly
...
Signed-off-by: FUJITA Tomonori <[email protected] >
2015-10-27 23:10:55 +09:00
ISHIDA Wataru
bb881467bc
policy: modify path.GetAsSeqList() to insert 0 for non-seq-as-elems
...
GetAsSeqList() is used for AsPathSet matching and AsPathPrepend action.
Just eliminating non-seq-as-elems from what GetAsSeqList() returns cause
wrong results for these two match/action.
e.g path A's as-path: {100, 200} 300
currently, action 'as-path-prepend left-most repeat 2' will alter
as-path to 300 300 {100, 200} 300, which is not expected behavior.
To fix this, insert 0 for non-seq-as-elems.
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-10-24 21:51:54 +09:00
ISHIDA Wataru and FUJITA Tomonori
7937d8ddb6
policy: clean up
...
remove redundant api structures and shorten valiable names
re-implement *ToApiStruct functions as a method of each structures
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-10-20 10:33:10 +09:00
ISHIDA Wataru and FUJITA Tomonori
473f5b6ff3
table: fix to handle doReplace flag
...
Signed-off-by: ISHIDA Wataru <[email protected] >
2015-10-20 10:33:09 +09:00