Changes since last version:
* Parser: protocol parser can now parse all types of protocols
* Parser: improved parsing of route change statistics
* Add TLS support for the HTTP listener
* Configuration: add new option for TLS 'enable_tls', 'crt' and 'key'
* Improved logging of API requests, similar to a webserver
* Execute birdc in restricted mode 'birdc -r'
Changes since last version:
* Fix detection of BIRD v2.x.y
* Fix birdc command in RoutesFiltered
* Use worker-threads to parse in parallel.
This speeds up parsing of large responses e.g. BGP full-table.
* Add flag "worker-pool-size" to control number of threads while parsing
* Configuration: add setting for ttl value to control caching of bird responses
* Configuration: change default location to /etc/birdwatcher
Changes since last version:
* Parser: support BIRD v2.x with multiprotocol BGP and channels
* Parser: major refactoring
* Parser: decrease memory footprint
* use io.Reader interface
* use line-iterator for birdc output
* Detection of BIRD v1.6.x or BIRD v2.x
* Extend test coverage for IPv6
* Tests for BIRD v2.x and IPv4
* Dependencies managed by now managed by dep
Includes an updated CHANGELOG reaching back to 1.10.0.
* Add a method to expire cache entries, based on the ttl value
* Add a housekeeping method that will periodically expire cache
entries and also maybe configured to force a GC/SCVG run.
Add support for various cache backends in anticipation of the
merge with master that has an additional redis backend.
The current memory based cache backend is refactored to implement
the new interface.
Merge changes including version 1.11.0 of upstream.
Remove extra lines in RoutesNoExport()
Conflicts:
README.md
* Keep `birdwatcher` in the configuration path
bird/bird.go
* Keep the default order of arguments to birdc in RoutesFiltered() and RoutesNoExport()
birdwatcher.go
* Keep `gorilla/handlers` for HTTP logging
Removed all high level functionality e.g. endpoints with multiple
invocations of birdc.
Add new endpoints which are required to duplicate the removed
functionality within Alice-LG.
This additionally caches the results after matching regular
expressions and improves performance further.
Credits: Hasan Pekdemir for the original idea.
The commands submitted to birdc contain "'" characters
placed before and after ip-address/prefix and table
name. In normal operation of birdc they are eliminated
by the shell. However when given as arguments to birdc
directly they cause "IP address expected" error in Bird.
Credits: Felix Singer for finding and submitting this bug.
The method parseBgp is now generic enough to parse
all types of protocols.
Added new regular expressions and a more flexible
way of processing route_change statistics that have
subtle differences in each protocol.