3
3
minor : increase on risk of code breakage during a major release
4
4
bug : increase on bug or incremental changes
7
* Fix: typo using uid instead gid (could prevent dropping privileges !)
8
reported by: Adrian Gämperli (with a merge request, thank you)
9
* Fix: prevent ExaBGP to start if the log folder is not writeable by the user
10
* Fix: configuration defaults for booleans ( and warns when group-updates is not enabled );
11
* Fix: issue when removing some routes
12
reported by: Adrian (backb1 on github)
13
* Fix: bad printing of route as-path
14
* Fix: neighbor matching was too permissive
15
reported by: Adrian Gämperli (with a merge request, thank you)
16
* Fix: under load ExaBGP could miss some commands sent through the API
17
reported by: Adrian Gämperli (with a merge request, thank you)
18
* Change: performing KeepAlive handling as first action
19
* Change: time is provided as an high resolution real number and not an integer
22
* Fix: typo causing issue when parsing multiple neighbor commands
23
reported by: Pablo Camarillo Garvia
24
* Fix: bad handling of EOR
25
reported by: Petr Lapukhov
26
* Fix: multiple bugs with multi neighbor commands
27
* Feature: allow as-path [ asn asn, [ asn ] ]
28
* Other: migrate the setup.py script to work with git (vs hg)
29
* Change: TEXT API format changed and version updated to 3.3.0 (reflect the version when the last change was introduced)
30
* Change: JSON API format changed and version updated to 3.3.0
31
* Change: as-path now returns two JSON keys, 'as-path' and 'as-set'
32
* Change: NLRI are now grouped by next-hop, next-hop removed from the NLRI
33
* Change: raw message use the keyword "message" and not "update"
34
* Change/Fix: JSON for announcement was missing next-hop
35
* Change: on TEXT API, "announced route eor" becomes "announced eor"
38
* Fix: bug when displaying EOR
39
* Fix: invalid check on next-hop for multi-line routes
40
reported by: Pierre Aubry
41
* Fix: badly parsing command line for run option
42
reported by: Allan Feid
43
solution by: Vincent Bernat
44
* Fix: allow the creation of 'allow' flows
45
reported by: Adrian Cepleanu
46
* Fix: bad JSON encoding for EOR
47
reported by: Robert Barnes
48
* Fix: API message encoding
49
patch by: Daniel Neiter
50
* Feature: allow digit:digit in extended communities
51
requested by: Pierre Aubry
52
* Feature: healtcheck.py, python 2.6 and community support
53
pulled from: Allan Feid
56
* Fix: add path for IPv6 was badly negotiated
57
reported by: Robert Barnes
60
* Feature: make route auto-flush an option with an API call to flush routes on demand
61
* Feature: make the reactor loop time an option (it allows for a faster flush of routes)
62
* Feature: allow to disable the Adj-RIB-Out (can save lots of memory if you know what you are going to send)
63
requested by: David Hauweele
64
* Fix: Keep API routes between SIGUSR
65
* Fix: Missing empty added nlri when the update only has withdrawn
66
reported by Robert Barnes (and his co-workers) with a patch, thank you !
67
* Fix: Single AS Path with AS Set were reported as empty AS Path and AS Set
68
reported by: David Hauweele
69
* Fix: possibly not sending withdrawal when it was required
70
reported by: David Hauweele
71
* Fix: typo in code causing crash when process went away
72
reported by: Robert Barnes
73
* Fix: RouterID MUST be an IPv4
74
reported by: Kristopher Beevers
75
* Fix: JSON output on EBGP and IBGP session is not the same
76
reported by: Robert Barnes
77
* Fix: route representation with labels and route distinguisher
78
* Fix: do not double remove the BGP header size
79
reported by: Hideaki HAYASHI
80
* Fix: parsing flow NLRI, withdrawal were reported as announcement
81
* Fix: printing extended communities
82
* Fix: retry when network is blocking (issue 60)
83
reported by: Hideaki HAYASHI
84
* Change: remove next-hop from attributes in JSON as it is given in the announce section
85
* Change: cleanup in configuration parsing
86
* Change: the path-information, labels and route distinguisher are now printed before the next-hop
89
* Fix: fix an issue with RIB cache handling
90
* Fix: fix an issue with Flow generation introduced recently (mandatory attributes are mandatory even for Flow Routes)
91
thanks to: Quentin Loos for reporting the issue and helping fixing it
92
* Fix: on SIGUSR no route withdrawal update was performed
93
reported by: Sascha Schumann
94
* Fix: Do not oversend routes for route refresh
95
reported by: Hideaki HAYASHI
96
* Fix: Bug when route when trying to withdraw an absent route with the API
97
reported by: Peter Bristow
98
* Fix: Malformed JSON message
99
reported by: Robert Barnes
100
* Fix: validate the FLAG of the attribute received (following our own advise on IDR)
101
* Change: major RIB code modification
102
* Change: match attributes using the flag value as well
105
* Fix: a wrong fix introducing a bug in 3.2.14
108
* Fix: do not leak route between peers
109
* Fix: restore group level static group for all peers thereafter
110
* Fix: a bug in group-updates causing attributes to not be included in the update message
111
* Fix: a bug when update large than 4096 could be generated with group-updates
112
* Fix: an issue with JSON generation
113
* Fix: MD5 support had been removed by error from 3.2
114
* Feature: allow to use quote with --decode
115
* Feature: implement draft-ietf-idr-aigp-10
118
* Fix: do not send enhanced route refresh BoRR and EoRR on reconnection
119
* Fix: do not take all the CPU when connecting
122
* Fix: the signal for reload were wrong in the debian script
123
reported by: Sascha Schumann
124
* Fix: a critical bug introduce in 3.2.11 when route were not resent on reconnect
125
reported by: Sascha Schumann
128
* Feature: the TCP server allows 'neighbor' commands
129
patch by: Hideaki HAYASHI
130
* Feature: initial Enhanced route refresh initial implementation
131
thanks to: Hideaki HAYASHI for reporting an issue before the release (some border cases still exist)
132
* Fix: bug in generating API string, missing space
133
* Fix: bug in generating API string, withdrawn reported as invalid announced
134
* Fix: bug in generating API string, withdawn was missing Path-Information
135
* Fix: route refresh implementation issues
136
* Fix: a bug with capability parsing introduced with operational
137
reported by: M. Brent Busby
138
* Fix: be more aggressive on reconnection (3.2 was slower than 3.1)
139
reported by: Sascha Schumann
142
* Fix: was not announcing add-path for IPv6 unicast
143
* Fix: we were not sending the Notification messages
144
reported by: Hideaki HAYASHI
145
* Feature: add support for route-refresh (RFC 2918)
148
* Fix: some json generation issue
149
reported by: Peter Spikings
150
* Fix: bad decoding of withdrawn routes with label ( checking 0x80000 and not 0x800000 )
151
* Fix: only treat 0x800000 as special for route withdrawal
152
* Fix: we could believe we were already connected when we were not
153
* Fix: handle when ExaBGP daftly connects to iself
154
* Fix: did not parse add-path capability correctly (only registered the last family sent)
155
reported Ryan Steinmetz
156
* Fix: ASM messages were sent as ADM
157
* Feature: decode shows the JSON representation of updates
158
* Feature: start of support for draft-ietf-idr-operational-message-00
159
* Feature: allow operational advisory message using the API
162
* Fix: correctly re-send routes between restart
165
* Fix: do not try to read empty body, causing loop delay
168
* Fix: bug in collision detection
169
* Fix: prevent re-announcement of identical routes
172
* Feature: FlowSpec decoding (ExaBGP can decode incoming FlowSpec)
173
* Feature: detect invalid netmask on route parsing
174
* Feature: "next-hop self" is supported via the API
175
* Feature: can accept incoming connect and perform collision detection
176
* Feature: add support for draft-ietf-idr-flowspec-redirect-ip-00.txt
177
* Feature: add missing DCSP marking from RFC 5575 (flowspec)
178
* Feature: add missing traffic-action from RFC 5575 (flowspec)
179
* Feature: add support for draft-raszuk-idr-flow-spec-v6-03
180
* Feature: complete RFC 5575 by providing support for flow-vpn
181
* Fix: async connect issues
182
reported by: Vincent Bernat (with very good advice for the patch)
183
* Fix: bad function defintions
184
patch by: Vincent Bernat
185
* Fix/Compatibility: bad naming of flow capability
186
* Compatibility: -c becomes -f (it should not be used by users anyway)
189
* Feature: new update code generation can really group NLRI in one update packet
190
* Feature: massive code cleanup, much easier to read
191
* Feature: new RIB code (inbound and outbound tables) much faster
192
* Compatibility: JSON next-hop for the route is not in the attribute anymore but the NLRI
195
* Fix: an issue in the 3.2.x series when the socket return a non-fatal error
196
reported by: Daniel Bradshaw
197
* Fix: an issue when the code would not behave correctly on network error
198
* Fix: some issues when encoding vpnv4 routes
199
* Fix: change the behaviour of the main peer loop (should behave more like expected - no bug reported tho)
200
* Fix: many small fixes
201
* Fix: bad encoding of FlowSpec Fragments
202
* Feature: implemented some defensive coding practice (enable with exabgp.debug.defensive)
203
* Feature: IO code now fully non blocking on read and write
204
* Feature: total rewrite of the watchdog feature now extremely scalable
207
* Feature: allow to generate NOTIFICATION messages through the API
208
requested by: Parag Jain
209
* Feature: new syntax for the multiple neighbor announcement created in 3.1.13
210
Allow to filter on more than the IP address
211
requested by: Petr Lapukhov
212
* Feature: better uid/euid/gid change check
213
* Feature: allow to reload with restart of helper process with SIGUSR1
214
patch by: Vincent Bernat
215
* Feature: --decode can now be passed multiple messages to decode
216
* Feature: -v,--version returns ExaBGP's version
217
* Feature: be more robust on ^C
218
* Feature: totally rewrote the networking code, it now better deal with blocking write and not not need buffering
219
* Feature: user controlled open wait timer
220
* Feature: handle unknown transitive attributes
221
* Feature: allow the generation of generic attributes
222
* Feature: faster parsing of consecutive updates with the same attributes
223
* Feature: more regression testing
224
* Fix: potential issue with multisession collision detection
225
* Fix: with multisession recent python would refuse to copy an route due to a lock in logger of the neighbor object
226
* Fix: could not handle NOTICATION sent during the OPEN negotiation stage
227
* Fix: extra spaces in the configuration could cause bad parsing
228
reported by: Parag Jain (with a patch for the RD case - thank you)
229
reported by: Vincent Bernat (with an alternate solution)
230
* Fix: ExaBGP would not connect if the OS did not implement SO_REUSEPORT
231
reported by: Vincent Bernat
232
* Fix: the configuration would not handle run program with upper case or spaces
233
reported by: Vincent Bernat
234
* Fix: bug in the networking code
235
patch by: Vincent Bernat
236
* Fix: an issue with received timer expiring when it should not have
237
reported by: Eric Cables
238
* Fix: do not try to parse Flow Route when perforing self-check (ExaBGP regression suite)
239
* Compatibility: supervisor was renamed reactor
240
* Compatibility: the word inet4/inet6 are now replaced by ipv4/ipv6
241
* Compatibility: the option exabgp.tcp.block was removed following the networking code change
242
* Compatibility: reload the configuration with SIGUSR1, reload configuration and processes with SIGUSR2
243
* Compatinility: using SIGHUP will now TERMINATE ExaBGP and not reload the configuration
244
reported by: Daniel Bradshaw (issue 32)
246
Version 3.1.13 - 6th July 2013
247
* Fix: only clear buffered routes on restart and not reload (bug never reported)
248
* Fix: an issue when parsing EOR
249
* Fix: bug with RD community genration
250
reported by: Parag Jain
251
* Feature: use less memory on route change calculation
252
* Feature: more regression testing
253
* Feature: allow to control which neighbor will get API notification
254
requested by: Parag Jain
255
* Feature: allow to control which neighbors will get API notification
256
requested by: Petr Lapukhov
257
* Feature: allow delayed connections
258
requested by: David Freeman
259
* Feature: block on busy socket for performance testing
260
requested by: David Freeman
261
* Fix/Feature: only announce routes for the negociated family on a connection
262
requested by: Andrew Hoyos
264
Version 3.1.12 - 16th May 2013
265
* Fix: could crash when a family safi was not defined in the peer family group instead of exiting with an error
266
* Fix: a bug in the generation of extended community (target and origin)
268
Version 3.1.11 - 2nd of May 2013
269
* Fix/Feature: prevent exabgp api command to block the main loop if very long (issue 29)
270
* Feature: better sharing of available time between api and peers
271
* Fix: a bug when trying to stop exabgp and a worker process is unstable
272
* Feature: count how many time a worker crashed and stop the application it is unstable (5 restart in 64 seconds)
274
Version 3.1.10 - 2nd of May 2013
275
* Change: the JSON format of ASPath
277
Version 3.1.10 - 8th of April 2013
278
* Change: relax a rule and let MED propagate on IBGP
6
280
Version 3.1.9 - 27th of March 2013
7
281
* Fix: bug in logging
8
282
* Fix: typo in neighbor printing
326
600
Version 1.3.1 - 3rd of May 2011
327
601
* Fix bug in configuration parsing introduce just before 1.3.0
328
* Improvement: make tcp-server implement all the internal API available
602
* Feature: make tcp-server implement all the internal API available
330
604
Version 1.3.0 - 2nd of May 2011
331
* Improvement: reduce likelyness of route update recalculation causing us to not send keepalive in time
605
* Feature: reduce likelyness of route update recalculation causing us to not send keepalive in time
332
606
* Fix: introduced a bug in neighbor printing
333
607
* Fix: we were trying to send a KEEPALIVE after the initial routes, but it was not going
334
608
* Fix: a work around a python bug with TCP was not implemented everywhere
335
* Improvement: adding a 'ttl-security' to allow to explicit setup of TCP TTL
336
* Improvement: better handling of BGP timer for keepalive
337
* Improvement: refuse to run as root, try to run as nobody automatically, uid/gid set to the user defined by env USER otherwise
609
* Feature: adding a 'ttl-security' to allow to explicit setup of TCP TTL
610
* Feature: better handling of BGP timer for keepalive
611
* Feature: refuse to run as root, try to run as nobody automatically, uid/gid set to the user defined by env USER otherwise
338
612
* Removed: the old wiki documentation
339
* Improvement: Debian Packaging (author and maintainer: Henry-Nicolas Tourneur - thank you)
613
* Feature: Debian Packaging (author and maintainer: Henry-Nicolas Tourneur - thank you)
340
614
* Change: renamed env variable DAEMON to DAEMONIZE (to prevent name clash with Debian)
341
* Improvement: added env variable PDB if set the program will call pdb, the python debugger, on program fault
342
* Improvement: it is now possible to get some routes withdrawn from an external process (see watchdog example conf.)
615
* Feature: added env variable PDB if set the program will call pdb, the python debugger, on program fault
616
* Feature: it is now possible to get some routes withdrawn from an external process (see watchdog example conf.)
343
617
warning: this code is not yet considered production ready, expect some bugs for complex configurations
344
* Improvement: it is now possible to modify the configuration without reload from external proccess (see process example conf.)
618
* Feature: it is now possible to modify the configuration without reload from external proccess (see process example conf.)
345
619
warning: this code is not yet considered production ready, expect some bugs for complex configurations
346
620
* Fix: make sure we can setup a session even if no route (ie: AFI/SAFI families for Mulitprotocol) are in the configuration
347
621
* Fix: many small bug fixes, simple code refactorisation, ...
349
623
Version 1.2.0 - 25th of January 2011
350
* Improvement: Allow to break route in more specific (ie define a /22 and get 4x /24 announced)
624
* Feature: Allow to break route in more specific (ie define a /22 and get 4x /24 announced)
351
625
This is useful when blackholing traffic to make sure no routes more specific are received from your network peer/transit
352
626
requested by : Renaud Chaput
353
* Improvement: Save the program PID into a file (set the PID= environment value with the file path)
627
* Feature: Save the program PID into a file (set the PID= environment value with the file path)
354
628
requested by : Renaud Chaput
355
* Improvement: Add syslog support (env SYSLOG= nothing for local syslog, a file name (auto-rotate) or host:<host> for remote syslog)
356
requested by : Josh Ward
357
* Improvement: Can now daemonise (env DAEMON= detach and send the program in the background)
358
requested by : Josh Ward
359
* Improvement: Selection of what subsystems to log, more readable logs (well, less unreadeable to be exact)
360
* Improvement: Create a new "group" in the configuration to share routes and configuration options between neighbors
629
* Feature: Add syslog support (env SYSLOG= nothing for local syslog, a file name (auto-rotate) or host:<host> for remote syslog)
630
requested by : Josh Ward
631
* Feature: Can now daemonise (env DAEMON= detach and send the program in the background)
632
requested by : Josh Ward
633
* Feature: Selection of what subsystems to log, more readable logs (well, less unreadeable to be exact)
634
* Feature: Create a new "group" in the configuration to share routes and configuration options between neighbors
361
635
requested by : Multiple people
362
636
* Fix: non detection of MD5 change on configuration reload
363
* Improvement: support distutil with a setup.py file for easy installation
637
* Feature: support distutil with a setup.py file for easy installation
365
639
Version 1.1.0 - 10th of January 2011
366
* Improvement: Tested and completed TCP MD5 signature
640
* Feature: Tested and completed TCP MD5 signature
367
641
contribution: MD5 TCP code by David Farrar
369
643
Version 1.0.4 - 8th of January 2011
370
* Improvement: can now toggle debuging using environment values (DEBUG_CONFIGURATION, DEBUG_SUPERVISOR, DEBUG_WIRE)
644
* Feature: can now toggle debuging using environment values (DEBUG_CONFIGURATION, DEBUG_SUPERVISOR, DEBUG_WIRE)
371
645
* Fix: some change to the AS_PATH generation code (some routers did not accept empty AS_PATH as it was encoded before)
372
646
reported by: R.P. Aditya
373
647
* Fix: some interoperability issue with openbgpd (could not parse their OPEN message)