forked from Exa-Networks/exabgp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
1274 lines (1182 loc) · 60.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Version explained:
major : codebase increase on incompatible changes
minor : increase on risk of code breakage during a major release
bug : increase on bug or incremental changes
Version 4.0.2
* Feature: draft-ietf-idr-link-bandwidth-06
* Fix: BGP-LS encoding
patch by: Evelio Vila
* Fix: Issue with received timer
* Fix: internal API using named FIFO
* Change: renamed exabgp.api.file to exabgp.api.cli - now a boolean, enabled by default
* Change: --folder option now --root, and not need when installed in /
Version 4.0.1
* Change: makes python3 the default interpreter
* Change: major change to log output format
* Change: refactor the core for much faster session establishment
* Change: JSON format for extended-community now reports both the value and decoded string
* Change: new section: announce { ipv4 { unicast ...; multicast ...; } } same syntax as route ...;
* Change: new section: announce { ipv6 { unicast ...; multicast ...; } } same syntax as route ...;
* Fix: correcly parse single element flow rule
reported by: Christoph Loibl
* Fix: much faster session establishment
* Feature: allow to disable command acknowledgement via environment
reported by: nidotech
* Feature: https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-05
patch by: Evelio Vila
* Feature: added a new API message "negotiated" which gives the negotiated feature of the session
* Feature: added a new API message "fsm" which gives the BGP state machine information
* Feature: added a new API message "signal" which inform of the signals received by ExaBGP
* Feature: it is now possible to use ip/netmask as notation for neighbor
* Feature: local-as can be set to "auto", to auto-setup an iBGP session using the OPEN's ASN
* Feature: Allow binding to multiple global IP addresses
* Feature: Add --validate option to check configuration
* Feature: Added option to save ADJ-RIB-IN
* Fix: Handle MD5 authentication on global IP addresses
* Fix: profiling code
* Fix: issue when waiting on a TCP connection then closed
* Fix: parsing flowspec port
* Fix: correctly inherit API data when using templated neighbors
* Fix: hexstring function
* Fix: VPLS JSON decoding
* Fix: Notification when encountering issues
* Fix: Many fixes to make sure all tests pass again
Version 4.0.0
* Feature: add support for interface-set for BGP flowspec routes
* Change: the configuration format is not compatible with ExaBGP 3.x
* Change: BMP support is deprecated for BGP-LS
* Change: move and install healthcheck in bin
* Change: removed old environment support ( DEBUG_* )
* Change: configuration logging is now disabled by default
* Change: all API commands returns an 'done' or 'error' message after running
patch from: Jérôme Marteaux
* Change: when API commands are failing, returns a 'error' message
patch from: Jérôme Marteaux
* Change: md5 is now called md5-password
* Change: always use neighbor local address for next-hop self (and not router-id for on IPv4 connections)
* Feature: support for large communities (-03)
patch by: Job Snijders
* Feature: add support for upstart
patch by: Pierre-Yves Kerembellec
* Feature/Fix: Port of bagpipe EVPN code
patch by: Thomas Morrin
* Feature: EVPN RT5 support
patch by: Diego Garcia del Rio
* Feature: Can use numerical values for Flow elements
requested by: jpan613 (on github)
* Feature: show route (extensive) can take a neighbor as parameter
requested by: jtkdpu
* Feature: allow to run exabgp from python -m exabgp
* Feature: support for BGP-LS decoding
* Change: ExaBGP is now run as user/group exabgp/exabgp with the systemd service file.
patch by: Vincent Bernat
* Change: Update are now grouped by default
* Change: Configuration format
- all deprecated name remove
- no more process group within neighbor
* Change: Change the API configuration syntax and format
- default changed
* JSON is now the default API encoder
* JSON now use high resolution time
- syntax changes to the Text API format
* added direction of message
* change received/sent to receive/send
* add extra informatiom (detail here)
- syntax changes to the JSON API format
* add direction to object
* pid, ppid are now numbers and not string
* remove deprecated 'ip' from neighbor
* rename 'restart flags' to be 'restart-flags'
* rename 'address family flags' to be 'address-family-flags'
* format change for notification and shutdown message
* VPLS endpoint, base, offset, and size are now numbers and not strings
* nlris are now a list and not nrli indexed object
* ipv4/ipv6 nlri without label or rd are now a list of nlri (as string) and not key to empty objects
* nlris with label or rd are returned as a list of objects
* Change: remove all ExaBGP 2.0 compatibily environment variables
* Change: include time when we log to file (and not application)
* Change: ttl-security is now called outgoing-ttl
* Change: the reactor does not exit if there is no peer configured
patch by: Jordan Gedney
* Change: API format for BGP flowspec updates, flowspec updates is now a list of dicts where each dict contains a single flowspec rule
patch by: Stacey Sheldon (Corsa)
* Fix: JSON reporting of VPLS ( endpoint, base, offset, and size were mixed up during printing )
* Fix: Do shutdown when waiting for a new connection to a peer
* Fix: Bad ASN enconding when ASN4 is not negotiated
reported by: Orangefish on github
* Fix: Shutdown when waiting for a new outgoing connection to establish
* Fix: JSON counter
reported by:
* Fix: JSON flow printing for source and destination
* Fix: Do not always locate exabgp.env
reported by: Florian Obser
* Fix: Correctly drop root privileges
reported by: Florian Obser
* Fix: validation of flow routes
* Fix: Python differences between Unix version breaking process forking
reported by: Raphael Mazelier
* Fix: Allow = with flowspec singleton
reported by: Pavel Odintsov
* Fix: selfcheck feature
* Fix: do not refuse to parse multiple MP attributes in an update
* Fix: possible bug with attribute information due to caching
reported by: Colin Petrie
* Fix: issue with unknown capabilities
reported by: Sandy Breeze
* Fix: notification messages were not passed to the API
reported by: Florian Obser
* Fix: ExaBGP was crashing if it could not write to a logfile
reported by: Pavel Odintsov
* Fix: only grouping IPv4 routes
reported by: Sergey Viuchny (stroboscope)
* Fix: Flow redirect to nexhop encoding
reported by: Mickael Marchand (Thank you to Peng Xiao and Nicolas Fevrier for their help)
* Fix: remove useless PYTHONPATH in sbin/exabgp
reported by: Håvard Eidnes
* Fix: add semi-colon in syslog ouput
* Fix: parsing multiple NLRI in flow routes
reported by: Dmitry Onuchin
* Fix: bad parsing of flow routes / missing support for exact bit matches
reported by: hengchai
reported by: Dmitry Onuchin
* Fix: reading large buffered data from helper process caused truncation
reported by: qqTYXn7
* Fix: better --version output
patch by: Ebben Aries
* Fix: mistakenly made a function private breaking some ASN4 code path
reported by: Victor Sudakov
* Fix: the ttl-security parameter didn´t really work. Fixed for outgoing connections now.
patch by: Borja Marcos
* Fix: AS4Path Message Registration
patch by: Adam Twardowski
* Fix: ASN4 boundary off by one
* Fix: Bad peer IP when using show routes
patch by: Wayne Tucker
* Fix: broken route-refresh command
reported by: Bryan Schwerer
* Fix: handle mulitple bits of flags in flow routes (Fragments and TCPFlags)
reported by: Pavel Odintsov
* Fix: does not use label information when handling the RIB
reported by: choisuibun
* Fix: healthcheck removes added IPs on exit
patch by: Ben Agricola
* Fix: Bad encoding of capability when multiple families are used for add-path
reported by: Alexander Bespalov
* Fix: support non ASN4 use of AS_TRANS (AS23456)
reported by: Todd Crane
* Fix: the json format would not allow normal parsers to extract all the NLRIs
reported by: Marco Marzetti
* Feature: Allow single line flow route
requested by: Pavel Odintsov
* Feature: add support for rpm packaging
patch by: Arun Babu Neelicattu
* Feature: manually sending EOR
pach by: Charles Ng
* Feature: add per neighbor connection port
requested by: dbarrosop
* Feature: support MIN_TTL for incoming connection (for OS with support - FreeBSD)
requested by: Borja Marcos
* Feature: md5-ip allows to override local-address for the MD5 calculations
requested by: Bryan Benson
* Feature: allow setting process umask via exabgp.daemon.umask
patch by: Bryan Le Gear
* Change: Update syslog message format
patch by: Brian Johnson
* Fix: flush route api
patch by: Brian Johnson
* Feature: Add 'show neighbor status' api
patch by: Brian Johnson
* Fix: Broken EOR printing
reported by: Pier Carlo Chiodi
* Fix: Allow asn4 peer to speak with asn2 only peer
patch by: Brian Johnson
* Fix: ExaBGP was crashing when serializing BGP flowspec updates
patch by: Stacey Sheldon (Corsa)
* Fix: API encoding of IPv4 Unicast EOR messages were being encoded as NLRI updates
patch by: Stacey Sheldon (Corsa)
* Fix: Update RIB cache families on configuration reload
patch by: Brian Johnson
* Change: Update show neighbors output to be parseable by configuration parser
patch by: Brian Johnson
* Feature: Allow configuration parsing of a string or a file
patch by: Brian Johnson
* Fix: Do not add IPv4/unicast family unless specifically configured
patch by: Brian Johnson
* Fix: ParseAPI should always use the class version of the _built dict
patch by: Brian Johnson
* Fix: Off by one error when getting message type for send-* api
patch by: Brian Johnson
* Fix: md5-ip config option is an ip address not a router_id
patch by: Brian Johnson
* Feature: Show routes by type (static/flow/l2vpn)
patch by: Brian Johnson
* Fix: Rewrite Update.messages so it will only include one MP_REACH or MP_UNREACH per UPDATE
patch by: Brian Johnson
* Fix: Remove a peer's RIB cache when it is deleted from the config file
patch by: Brian Johnson
* Feature: Allow md5 password to be base64 encoded
patch by: Brian Johnson
Version 3.4.19
* Add: IPv6 nlri-mpls to list of enabled protocol (was missing)
requested by: adrian62
* Fix: encoding of Flow Label requiring more than 2 bytes
reported by: BLAKEMMM
* Fix: decoding of capability (was potentially over reading)
* Fix: trace when trying to access PID file and this is not allowed
reported by: George Shuklin
* Fix: Remove a peer's RIB cache when it is deleted from the config file
patch by: Brian Johnson
* Fix: do not crash the reactor when an invalid IP is passed via the API
reported by: Yevgeniy Ovsyannikov
* Fix: bad defintion of Flow for ICMPType, ICMPCode and Fragment
reported by: Christoph Loibl
* Feature: allow add-path for mpls-vpn
reported by: adrian62
* Change: Backported setup.py from master
* Feature: added SRPMS for exabgp
patch by: Leonardo Amaral
Version 3.4.18
* Backport: backhole community (RFC 7999)
original patch by: Job Snijders
* Fix: Configuration parser does not accept configs without neighbors.
patch by doddt
* Fix: 'connect' keyword is now also allowed in neighbor scope
patch by: Stacey Sheldon (Corsa)
* Fix: removing protocol auto-cleanup (it should never be called and seems to cause a CG issue)
reported by: Colin Petrie
* Change: default to a 0 offset for ipv6 flowspec source/destination match
patch by: Brian Johnson
* Fix: Better PID file handling
reported by: Ben Agricola
* Fix: Update RIB cache families on configuration reload
patch by: Brian Johnson
* Fix: Backport fix on SIGUSR2 (restarting process not needing to be)
patch by: Shawn Zhou
* Change: group-updates now generates one UPDATE per address family (and not one per NLRI for non IPv4)
patch by: Brian Johnson
Version 3.4.17
* Fix: does not accept IPv6 as router-id
reported by: yuriya
* Fix: JSON output for flow routes with rd
reported by droon5
* Fix: Fix Path-Information
* Fix: Bad encoding of capability when multiple families are used for add-path
reported: by Alexander Bespalov
* Fix: support non ASN4 use of AS_TRANS (AS23456)
reported by: Todd Crane
* Fix: do not exit when we can not accept incoming connection
reported by: Pavel Batkov
* Fix: quote where not escaped in JSON reason field
reported by: Rob Barnes
* Fix: decoding of IPv6 flow routes
reported by: stoffi92
* Fix: decoding of Graceful Restart Capability
patch by: florinz
* Fix: ASN4 encoding
patch by: Shu Sugimoto and Eiichiro Watanabe
* Change: Run without even peers configured
patch by: Jordan Gedney
* Fix: JSON encoding of updates without NLRIs
patch by: Dhammika Pathirana
* Fix: Possible race conditions in api handling
patch by: Brian Johnson
* Feature: Add 'show neighbor status' api
patch by: Brian Johnson
* Fix: flush route api
patch by: Brian Johnson
* Fix: Allow asn4 peer to speak with asn2 only peer
patch by: Brian Johnson
* Fix: only one MP NLRI is allow per UPDATE
reported by: subsecond
* Change: configuration output does not includes ':' anymore
patch by: doddt
* Change: syslog format changed to be in line with other application
patch by: Brian Johnson
Version 3.4.16
* Feature: allow users to decide if processes must be run before or after we drop privileges
requested by: Ben Agricola
* Fix: correctly look in /etc/exabgp for programs to run when the path is relative
reported by: Vincent Bernat
* Fix: missing handler for NOTIFICATION
patch by: minglvyy
Version 3.4.15
* Fix: the ttl-security parameter didn´t really work. Fixed for outgoing connections now.
patch by: Borja Marcos
* Fix: configuration leak between processes for neighbor-changes and send-packets
reported by: spakka
* Feature: add per neighbor connection port
requested by: dbarrosop
* Fix: ASN4 boundary off by one
* Fix: Bad peer IP when using show routes
patch by (backported): Wayne Tucker
* Fix: Missing next-hop in the text api
reported by: Lisa Roach
* Fix: broken route-refresh command
reported by: Bryan Schwerer
* Fix: wrongly announcing connection issue with peer on the API
reported by: Bryan Schwerer
Version 3.4.14
* Change: This version does not exists
* Change: we modified some pypi related code and failed at first
* Change: pypi does not let you modify releases
Version 3.4.13
* Fix: add semicolon in syslog entry so it can be parsed by tools
* Fix: duplication of message following helper process death
reported by: spakka
* Fix: death of helper program would lead to BGP session drop
reported by: spakka
* Fix: mistakenly made a function private breaking some ASN4 code path
reported by: Victor Sudakov
* Feature: manual eor
patch by: Charles Ng
Version 3.4.12
* Fix: issue with unknown capabilities
reported by: Sandy Breeze
* Fix: notification messages were not passed to the API
reported by: Florian Obser
* Fix: transitivity on extended community
patch by: Thomas Morin
* Fix: bad reporting of VPLS information in JSON
* Fix: wrong SAFI on MPLS routes
reported by: Hideaki HAYASHI
* Fix: bad route comparaison
reported by: Alvaro Pereira
* Fix: decoding of Update
* Fix: Flow redirect to nexhop encoding
reported by: Mickael Marchand (Thank you to Peng Xiao and Nicolas Fevrier for their help)
* Fix/Improve: JSON for flow spec
* Fix/Improve: redirect-to-nexthop
reported by: Mickael Marchand
Version 3.4.11
* Change: install healthcheck in bin
* Fix: Do shutdown when waiting for a new connection to a peer
* Fix: Bad ASN enconding when ASN4 is not negotiated
reported by: Orangefish on github
* Fix: Shutdown when waiting for a new outgoing connection to establish
* Fix: JSON counter
reported by:
* Fix: JSON flow printing for source and destination
* Fix: Do not always locate exabgp.env
reported by: Florian Obser
* Fix: Correctly drop root privileges
reported by: Florian Obser
* Fix: validation of flow routes
* Fix: Python differences between Unix version breaking process forking
* Fix: Allow = with flowspec singleton
reported by: Pavel Odintsov
* Fix: selfcheck feature
* Fix: do not refuse to parse multiple MP attributes in an update
* Fix: possible bug with attribute information due to caching
* Feature: Allow single line flow route
requested by: Pavel Odintsov
* Feature: show route (extensive) can take a neighbor as parameter
requested by: jtkdpu
Version 3.4.10
* Fix: Fix parsing attributes with PARTIAL flag set
patch by: Daniel Neiter
* Fix: Fix -t exit with error code 1 when -t is used and the configuration is invalid
reported by: Kevin Landreth
* Fix: Using split option with large MP could lead to invalid update
reported by: m4ccbr on github
* Fix: MD5 support for incoming connection
patch by: Sandy Breeze and David Overton
* Fix: prevent multiple similar binding
reported by: Sandy Breeze
* Fix: allow different MD5 for the same binding
reported by: Sandy Breeze
* Fix: issue with ASN4 code
reported by: Florian Obser (with a patch, thank you)
* Fix: issue with --decode
* Change: remove /usr/bin/healthcheck. People should use
"python -m exabgp healthcheck" instead
Version 3.4.9
* Fix: very bad bug where NLRI where not associated to the right AFI/SAFI pair ( #235 )
reported by: esequei
* Feature: per peer listening option ( listen keyword with port number )
* Feature: incoming connection MD5 support (incomplete: only work on localhost atm)
requested by: Sandy Breeze
Version 3.4.8
* Fix: bug with multiple configuration files
* Fix: allow generic attribute not only in single line but also in multiple lines
patch by: Eiichiro Watanabe (issue #214)
* Fix: issue with parsing extended-community origin
reported by: Tim Preston
* Fix: handle numeric community parsing correctly
reported by: Aaron Kalin
* Fix: bug in AS_PATH with AS_SET handling
patch by: Eiichiro Watanabe
* Fix: off by one for the maximum message size generation
reported by: Eiichiro Watanabe
* Fix: issue with handling of some generic attributes
reported by: Hiroshi Yokoi
* Fix: restore old api syntax broken by mistake
patch by: David Waring
* Fix: issue with E-VPN NLRI
patch by: Thomas Morin
* Fix: bad iteration for JSON generation ( bug created during 3.4.8 dev )
patch by: Ian bobbitt
* Fix: healthcheck.py: optionally match "alias" in ifconfig output
patch by: Håvard Eidnes
* Fix: healthcheck.py: make the ifconfig path work; regexp fix
patch by: Håvard Eidnes
* Change: moved the netlink library within exabgp
* Feature: qa/bin/ip and qa/bin/route
Version 3.4.7
* Package: be more pythonic and use enty points with pip installation
* Package: automatically update debian's changelog on release
* Fix: issue with aggregator generation
reported by: Yan Filyurin
Version 3.4.6
* Fix: a badly formated flow route would throw the parser in limbo
reported by: NickGudov (issue #203)
* Fix: allow multiple extended attribute (like flow rediction with a origin/target)
* Fix: use ICMP Type and Code when printing flows (respectively using name and number)
* Fix: do not use space printing redirect extended community
* Fix: not parsing correctly multisession configurations
* Fix: bug in ASPath parsing
reported by: Terry Hardie (issue #205)
* Feature: use ETC environment variable for configuration location if set
* Feature: JSON now includes ASN (local,peer) and IP (local,IP)
requested by: jtkdpu (issue #196)
patch by: Ryan Tinianov (pull #199) for the IP
* Feature: API support for sending eor
requested by: spakka (issue #109)
* Feature: allow routes to have a name (which can be used as comment)
requested by: lazy404 (issue #167)
* Feature: improve release code to prevent version mismatch (issue #202)
reported by: Anand Buddhdev
* Fix: systemd file is not installed anymore by default (issue #202)
to add to the file installation list use "python setup.py install systemd"
requested by: Anand Buddhdev
* QA: moved all testing code (used by travis-ci) in the ./qa folder
* QA: added nosetest, updating some of the old unittest code
* QA: integrated travis-ci with coveralls.io to have real time code coverage
* QA: ExaBGP can take more than one configuration file and on configuration reload rotate between them
* QA: checking that broken flows do not break the parser
* QA: checking that configuration routes are well added and removed on SIGUSR1
* QA: checking that incoming notifications are handled correctly
* QA: moved many sample configuration file from etc/exabgp to the new qa/conf
Version 3.4.5
* Fix: improper distribution of events to process workers
reported by: Tim Epkes
Version 3.4.4
* Fix: bug with IPv4 / ipv6 handling
* Fix: better peer isolation when parsing messages
* Fix: IPv6 decoding when the routes includes link-local
* Fix: missing text API paramter
* Fix: no JSON for Aggregator
* Fix: show route extensive
patch by: Michal Grzedzicki, thank you
* Fix: 4-Octet AS Specific BGP Extended Community (RFC 5668)
patch by: Michal Grzedzicki
* Fix: bug with label encoding
patch by: Jesse Mather
* Improvement: add support for add-path with family MPLS
requested by: Tim Epkes
* Fix: bug when process writes multiple lines
reported by: Ilya Voronin
* Feature: accept packet with confedation (RFC 3065)
requested by: oriordan (with a patch, thank you)
* Fix: do not bark if an unknown ASPath attribute is found
* Fix: correctly accept connection on AF_INET6 socket
patch by: John W. O'Brien
* Fix: restore lost python2.6 compatibility
reported by: Minsuk Song
* Fix: IPv6 MD5
reported by: Dave J Knight
* Add framework to debug SIGUSR1 related problems
* Fix: do not drop session when receiving an unknown capability
patch by: Peter van Dijk (PowerDNS)
Version 3.4.3
* Fix: JSON message increment
reported by: Daniel Neiter, with a patch, thank you.
* Fix: JSON message format for operational
reported by: Rob Barnes, with a patch, thank you.
* Fix: JSON message for route-refresh
* Fix: EOR unpack issue
* Fix: ASPath encoding
* Fix: possible bad notify call
* Fix: Aggregator configuration issue
* Fix: pycharm reported issues
* operational, using afi instead of safi
* bad function paramters
* missing return keyword
* many cleanups
* Change: use RFC MULTISESSION capability and not CISCO variant anymore
Version 3.4.2
* Feature: add more information in crash report
* Fix: problem when trying to report exception errors
* Fix: better handling of on PIPE errors
reported by: Thomas Raabo
* Fix: could not split MPLS routes
reported by: Hideaki HAYASHI
* Fix: not correctly handling NOTIFICATION message
reported by: Hideaki HAYASHI
* Fix: do not block on a peer should a socket become blocking
reported by: Wouter Miltenburg
* Fix: API JSON message id incrementation
reported by: Wouter Miltenburg
Version 3.4.1
* Fix: on bad JSON message
patch from: Wouter Miltenburg
* Fix: parsing of default route
reported by: Wouter Miltenburg
* Fix: remove legacy exabgp.tcp.timeout
* Fix: forgot some processes options when printing neighbor
* Fix: bad function call for API
* Fix: correct JSON for OPEN
* Fix: issues with bad naming of APIOption
patch from: Wouter Miltenburg
* Fix: do not try to be clever (and possibly get it wrong) and rely on keepalive timer to detect TCP faults
* Fix: formating issue of extended community
* Fix: issue with EOR
* Fix: caching issue
reported by: Wouter Miltenburg
* Fix: make sure we do not call select with a negative time
reported by: Wouter Miltenburg, Daniel Piekacz
patch from: Wouter Miltenburg
* Fix: handle AS4_PATH with PARTIAL bit set
reported by: Daniel Piekacz
* Fix: bug with generic attribute generation
* Fix: bad Notification
patch from: Wouter Miltenburg
* Fix: bad Keepalive JSON message
patch from: Wouter Miltenburg
Version 3.4.0
* Feature: add support for extended-attribute for FlowSpec
* Feature: more detailed JSON objects
patch from: Wouter Miltenburg
* Feature: support for L2VPN (experimental)
patch from: Nikita V. Shirokov
* Improvement: better handling of NOTIFICATION received during OPEN negotiation
* Improvement: ExaBGP can restart failed helper process
* Fix: Do not reconnect too fast when connection fails
reported by: Robert Barnes
* Fix: Invalid JSON object for route-refresh
reported by: Robert Barnes
* Fix: We were not reporting the NLRI of the route received when exabgp.log.routes was set
* Fix: accept exabgp_tcp_port as configuration option and not only exabgp.tcp.port
* Fix: duplicate line output
* Fix: bad refactorisation which caused an bad ASN4 bug
* Fix: change EOR from IPv4 multicast (mistake) to IPv4 unicast
reported by: Mark Treacy
* Fix: bad encoding of flow fragment encoding
reported by: Andrei-Marius Radu
* Fix: bad reporting of process open sending
reported by: Mark Treacy (with patch, thank you)
* Fix: Incorporating NETBSD compatibility patches
* Fix: Generation of Generic Attributes
* Fix: Faster reactor (should be able to process much more API/BGP messages)
* Change: new commands for the configuration of the API
* Change: JSON objects now include a unique neighbor identifier
* Change: JSON objects now include a counter for unique message id
* Change: JSON objects now include a "type" to now how to best parse them
* Change: JSON new EOR object
* Change: JSON new Flow format
* Change: slight variation with the command line option names, now using docopt
patch from: Michael Robert Watson
* Change: the profile information is now exported in kcachegrind format
* Compatibility: JSON re-introduced the family under the "announce" section ( removed by mistake )
* Compatibility: restoring integer as default time, high resolution must be enabled to not break older installations
* Change: JSON and Text shutdown object now shows the PID and PPID
Version 3.3.2
* Fix: work toward working operational-01
patch by: David Freedman
* Fix: do not use . notation in systemd but _
reported by: Apollon Oikonomopoulos
Version 3.3.1
* Fix: typo using uid instead gid (could prevent dropping privileges !)
reported by: Adrian Gämperli (with a merge request, thank you)
* Fix: prevent ExaBGP to start if the log folder is not writeable by the user
* Fix: configuration defaults for booleans ( and warns when group-updates is not enabled );
* Fix: issue when removing some routes
reported by: Adrian Gämperli (backb1 on github)
* Fix: bad printing of route as-path
* Fix: neighbor matching was too permissive
reported by: Adrian Gämperli (with a merge request, thank you)
* Fix: under load ExaBGP could miss some commands sent through the API
reported by: Adrian Gämperli (with a merge request, thank you)
* Change: performing KeepAlive handling as first action
* Change: time is provided as an high resolution real number and not an integer
* Debian package update by:
Henry-Nicolas Tourneur
Version 3.3.0
* Fix: typo causing issue when parsing multiple neighbor commands
reported by: Pablo Camarillo Garvia
* Fix: bad handling of EOR
reported by: Petr Lapukhov
* Fix: multiple bugs with multi neighbor commands
* Feature: allow as-path [ asn asn, [ asn ] ]
* Other: migrate the setup.py script to work with git (vs hg)
* Change: TEXT API format changed and version updated to 3.3.0 (reflect the version when the last change was introduced)
* Change: JSON API format changed and version updated to 3.3.0
* Change: as-path now returns two JSON keys, 'as-path' and 'as-set'
* Change: NLRI are now grouped by next-hop, next-hop removed from the NLRI
* Change: raw message use the keyword "message" and not "update"
* Change/Fix: JSON for announcement was missing next-hop
* Change: on TEXT API, "announced route eor" becomes "announced eor"
Version 3.2.19
* Fix: bug when displaying EOR
* Fix: invalid check on next-hop for multi-line routes
reported by: Pierre Aubry
* Fix: badly parsing command line for run option
reported by: Allan Feid
solution by: Vincent Bernat
* Fix: allow the creation of 'allow' flows
reported by: Adrian Cepleanu
* Fix: bad JSON encoding for EOR
reported by: Robert Barnes
* Fix: API message encoding
patch by: Daniel Neiter
* Feature: allow digit:digit in extended communities
requested by: Pierre Aubry
* Feature: healtcheck.py, python 2.6 and community support
pulled from: Allan Feid
Version 3.2.18
* Fix: add path for IPv6 was badly negotiated
reported by: Robert Barnes
Version 3.2.17
* Feature: make route auto-flush an option with an API call to flush routes on demand
* Feature: make the reactor loop time an option (it allows for a faster flush of routes)
* Feature: allow to disable the Adj-RIB-Out (can save lots of memory if you know what you are going to send)
requested by: David Hauweele
* Fix: Keep API routes between SIGUSR
* Fix: Missing empty added nlri when the update only has withdrawn
reported by Robert Barnes (and his co-workers) with a patch, thank you !
* Fix: Single AS Path with AS Set were reported as empty AS Path and AS Set
reported by: David Hauweele
* Fix: possibly not sending withdrawal when it was required
reported by: David Hauweele
* Fix: typo in code causing crash when process went away
reported by: Robert Barnes
* Fix: RouterID MUST be an IPv4
reported by: Kristopher Beevers
* Fix: JSON output on EBGP and IBGP session is not the same
reported by: Robert Barnes
* Fix: route representation with labels and route distinguisher
* Fix: do not double remove the BGP header size
reported by: Hideaki HAYASHI
* Fix: parsing flow NLRI, withdrawal were reported as announcement
* Fix: printing extended communities
* Fix: retry when network is blocking (issue 60)
reported by: Hideaki HAYASHI
* Change: remove next-hop from attributes in JSON as it is given in the announce section
* Change: cleanup in configuration parsing
* Change: the path-information, labels and route distinguisher are now printed before the next-hop
Version 3.2.16
* Fix: fix an issue with RIB cache handling
* Fix: fix an issue with Flow generation introduced recently (mandatory attributes are mandatory even for Flow Routes)
thanks to: Quentin Loos for reporting the issue and helping fixing it
* Fix: on SIGUSR no route withdrawal update was performed
reported by: Sascha Schumann
* Fix: Do not oversend routes for route refresh
reported by: Hideaki HAYASHI
* Fix: Bug when route when trying to withdraw an absent route with the API
reported by: Peter Bristow
* Fix: Malformed JSON message
reported by: Robert Barnes
* Fix: validate the FLAG of the attribute received (following our own advise on IDR)
* Change: major RIB code modification
* Change: match attributes using the flag value as well
Version 3.2.15
* Fix: a wrong fix introducing a bug in 3.2.14
Version 3.2.14
* Fix: do not leak route between peers
* Fix: restore group level static group for all peers thereafter
* Fix: a bug in group-updates causing attributes to not be included in the update message
* Fix: a bug when update large than 4096 could be generated with group-updates
* Fix: an issue with JSON generation
* Fix: MD5 support had been removed by error from 3.2
* Feature: allow to use quote with --decode
* Feature: implement draft-ietf-idr-aigp-10
Version 3.2.13
* Fix: do not send enhanced route refresh BoRR and EoRR on reconnection
* Fix: do not take all the CPU when connecting
Version 3.2.12
* Fix: the signal for reload were wrong in the debian script
reported by: Sascha Schumann
* Fix: a critical bug introduce in 3.2.11 when route were not resent on reconnect
reported by: Sascha Schumann
Version 3.2.11
* Feature: the TCP server allows 'neighbor' commands
patch by: Hideaki HAYASHI
* Feature: initial Enhanced route refresh initial implementation
thanks to: Hideaki HAYASHI for reporting an issue before the release (some border cases still exist)
* Fix: bug in generating API string, missing space
* Fix: bug in generating API string, withdrawn reported as invalid announced
* Fix: bug in generating API string, withdawn was missing Path-Information
* Fix: route refresh implementation issues
* Fix: a bug with capability parsing introduced with operational
reported by: M. Brent Busby
* Fix: be more aggressive on reconnection (3.2 was slower than 3.1)
reported by: Sascha Schumann
Version 3.2.10
* Fix: was not announcing add-path for IPv6 unicast
* Fix: we were not sending the Notification messages
reported by: Hideaki HAYASHI
* Feature: add support for route-refresh (RFC 2918)
Version 3.2.9
* Fix: some json generation issue
reported by: Peter Spikings
* Fix: bad decoding of withdrawn routes with label ( checking 0x80000 and not 0x800000 )
* Fix: only treat 0x800000 as special for route withdrawal
* Fix: we could believe we were already connected when we were not
* Fix: handle when ExaBGP daftly connects to iself
* Fix: did not parse add-path capability correctly (only registered the last family sent)
reported Ryan Steinmetz
* Fix: ASM messages were sent as ADM
* Feature: decode shows the JSON representation of updates
* Feature: start of support for draft-ietf-idr-operational-message-00
* Feature: allow operational advisory message using the API
Version 3.2.8
* Fix: correctly re-send routes between restart
Version 3.2.7
* Fix: do not try to read empty body, causing loop delay
Version 3.2.6
* Fix: bug in collision detection
* Fix: prevent re-announcement of identical routes
Version 3.2.5
* Feature: FlowSpec decoding (ExaBGP can decode incoming FlowSpec)
* Feature: detect invalid netmask on route parsing
* Feature: "next-hop self" is supported via the API
* Feature: can accept incoming connect and perform collision detection
* Feature: add support for draft-ietf-idr-flowspec-redirect-ip-00.txt
* Feature: add missing DCSP marking from RFC 5575 (flowspec)
* Feature: add missing traffic-action from RFC 5575 (flowspec)
* Feature: add support for draft-raszuk-idr-flow-spec-v6-03
* Feature: complete RFC 5575 by providing support for flow-vpn
* Fix: async connect issues
reported by: Vincent Bernat (with very good advice for the patch)
* Fix: bad function defintions
patch by: Vincent Bernat
* Fix/Compatibility: bad naming of flow capability
* Compatibility: -c becomes -f (it should not be used by users anyway)
Version 3.2.4
* Feature: new update code generation can really group NLRI in one update packet
* Feature: massive code cleanup, much easier to read
* Feature: new RIB code (inbound and outbound tables) much faster
* Compatibility: JSON next-hop for the route is not in the attribute anymore but the NLRI
Version 3.2.3
* Fix: an issue in the 3.2.x series when the socket return a non-fatal error
reported by: Daniel Bradshaw
* Fix: an issue when the code would not behave correctly on network error
* Fix: some issues when encoding vpnv4 routes
* Fix: change the behaviour of the main peer loop (should behave more like expected - no bug reported tho)
* Fix: many small fixes
* Fix: bad encoding of FlowSpec Fragments
* Feature: implemented some defensive coding practice (enable with exabgp.debug.defensive)
* Feature: IO code now fully non blocking on read and write
* Feature: total rewrite of the watchdog feature now extremely scalable
Version 3.2.2
* Feature: allow to generate NOTIFICATION messages through the API
requested by: Parag Jain
* Feature: new syntax for the multiple neighbor announcement created in 3.1.13
Allow to filter on more than the IP address
requested by: Petr Lapukhov
* Feature: better uid/euid/gid change check
* Feature: allow to reload with restart of helper process with SIGUSR1
patch by: Vincent Bernat
* Feature: --decode can now be passed multiple messages to decode
* Feature: -v,--version returns ExaBGP's version
* Feature: be more robust on ^C
* Feature: totally rewrote the networking code, it now better deal with blocking write and not not need buffering
* Feature: user controlled open wait timer
* Feature: handle unknown transitive attributes
* Feature: allow the generation of generic attributes
* Feature: faster parsing of consecutive updates with the same attributes
* Feature: more regression testing
* Fix: potential issue with multisession collision detection
* Fix: with multisession recent python would refuse to copy an route due to a lock in logger of the neighbor object
* Fix: could not handle NOTICATION sent during the OPEN negotiation stage
* Fix: extra spaces in the configuration could cause bad parsing
reported by: Parag Jain (with a patch for the RD case - thank you)
reported by: Vincent Bernat (with an alternate solution)
* Fix: ExaBGP would not connect if the OS did not implement SO_REUSEPORT
reported by: Vincent Bernat
* Fix: the configuration would not handle run program with upper case or spaces
reported by: Vincent Bernat
* Fix: bug in the networking code
patch by: Vincent Bernat
* Fix: an issue with received timer expiring when it should not have
reported by: Eric Cables
* Fix: do not try to parse Flow Route when perforing self-check (ExaBGP regression suite)
* Compatibility: supervisor was renamed reactor
* Compatibility: the word inet4/inet6 are now replaced by ipv4/ipv6
* Compatibility: the option exabgp.tcp.block was removed following the networking code change
* Compatibility: reload the configuration with SIGUSR1, reload configuration and processes with SIGUSR2
* Compatinility: using SIGHUP will now TERMINATE ExaBGP and not reload the configuration
reported by: Daniel Bradshaw (issue 32)
Version 3.1.13 - 6th July 2013
* Fix: only clear buffered routes on restart and not reload (bug never reported)
* Fix: an issue when parsing EOR
* Fix: bug with RD community genration
reported by: Parag Jain
* Feature: use less memory on route change calculation
* Feature: more regression testing
* Feature: allow to control which neighbor will get API notification
requested by: Parag Jain
* Feature: allow to control which neighbors will get API notification
requested by: Petr Lapukhov
* Feature: allow delayed connections
requested by: David Freeman
* Feature: block on busy socket for performance testing
requested by: David Freeman
* Fix/Feature: only announce routes for the negociated family on a connection
requested by: Andrew Hoyos
Version 3.1.12 - 16th May 2013
* Fix: could crash when a family safi was not defined in the peer family group instead of exiting with an error
* Fix: a bug in the generation of extended community (target and origin)
Version 3.1.11 - 2nd of May 2013
* Fix/Feature: prevent exabgp api command to block the main loop if very long (issue 29)
* Feature: better sharing of available time between api and peers
* Fix: a bug when trying to stop exabgp and a worker process is unstable
* Feature: count how many time a worker crashed and stop the application it is unstable (5 restart in 64 seconds)
Version 3.1.10 - 2nd of May 2013
* Change: the JSON format of ASPath
Version 3.1.10 - 8th of April 2013
* Change: relax a rule and let MED propagate on IBGP
Version 3.1.9 - 27th of March 2013
* Fix: bug in logging
* Fix: typo in neighbor printing
Version 3.1.8 - 22nd of March 2013
* Fix: bad encoding of extended community for FlowSpec redirect
reported by: Ozgur Karaman
* Feature: unsupported before the next configuration format 'next-hop self', the neighbor MUST be defined first
requested by: Federic Gabut-Deloraine
Version 3.1.7 - 18th of March 2013
* Fix: api only get bgp session negotiation messages if neighbor-changes is set
reported by: Lorenzo Murillo
* Fix: json quoted integer and long by mistake
reported by: Lorenzo Murillo
* Fix: json used comma with no data to separate
reported by: Lorenzo Murillo
Version 3.1.6 - 8th of March 2013
* Fix: unclear log entry when removing route using API
reported by: Lorenzo Murillo
* Fix: withdrawn routes were always prepended with add-path information
* Fix: bad withdrawal of routes (issue 11)
* Fix: more sanity checking when parsing flow routes
* Change: split configuration code to not be exabgp only
* Feature: add a very simple BMP deamon (version 1 of the draft)
Version 3.1.5 - 18th of Febuary 2013
* Fix: function name broking some features (issue 23)
reported by: Lorenzo Murillo
Version 3.1.4 - 18th of Febuary 2013
* Fix: Learn to spell negotiated (issue 21)
reported by: Ian Wells
* Feature: option to only attempt one TCP connection per peer (required by unittesting code)
* Fix: a bug in code in charge of parsing legacy API names
* Fix: fix relative path from exabgp
* Fix: bug in api code causing crash
* Fix: did not cleanup routes from the api before tokenisation (issue 22)
reported by: Lorenzo Murillo
* Fix: did not split routes from the api (issue 22)
reported by: Lorenzo Murillo
* Fix: when the api program was sending message too fast, some were missed (issue 22)
reported by: Lorenzo Murillo
* Fix: make peer name more unique (adding asn, and router-id) to prevent to router configuration to merge
* Feature: restart the API program if we lost its file descriptor
Version 3.1.3 - 4th of Febuary 2013
* Fix: JSON bugs (encoding for cluster-list, withdrawn routes)
patch by: Vincent Bernat
Version 3.1.2 - 10th of January 2013
* Copyright: updated all copyright notice (welcome to 2013)
* Change: tidy process command name (keeping compatibility)
* Feature: pass raw update message to the API
* Feature: better control of the API message passed
* Feature: allow/make work a global process for multiples peers (partial compatibility kept)
Version 3.1.1 - 6th of January 2013
* Complete Fix: watchdog feature (issue 13)
* Feature: JSON API 1.0, flowspec untested (issue 17)
* Feature: allow to remove routes by only providing the nlri and next hop (issue 16)
Version 3.1.0 - 2nd of January 2013
* Partial Fix: watchdog feature
reported by: Ryan Steinmetz
* Fix: problem with SIGHUP when deleting peer
patch by: Justin Azoff (thank you)
* Fix: cluster-list attribute was not passed to api correctly
* Feature: MD5 support on FreeBSD (issue 14)
patch by: Ryan Steinmetz (thank you)
* Feature: caching of Community and Next-Hop
requested by: Justin Azoff (with benchmarking gains report,thank you)
* Feature: Store routes in neighbor as set and not list, so removal are O(1)
patch by: Justin Azoff (thank you)
* Feature: (experimental) Limit the memory used for parsed route caching
* Feature: (experimental) json encoding on the API (issue 17) not tested with flow routes or complex routes
Version 3.0.11 - 21st of November 2012
* Fix: add support for IPv6 MD5SUM
reported by: Eiichiro Watanabe (with a patch, thank you)
* Fix: RFC compliance, supporting keepalive timer of zero
* Fix: parsing an invalid community string could cause a program crash
* Feature: add possibility to disable route attribute caching to reduce memory usage
(over a few hundred Mb saved per full routing tables)
requested by Daniel Piekacz
Version 3.0.10 - 6th of September 2012
* Fix: not removing duplicate route correctly (same nlri different attributes) (issue 7)
patch by: Reggie Yam (thank you)
Version 3.0.9 - 5th of September 2012
* Fix: problem when parsing ASN which are not fitting in a Python integer
reported by: Matthias Cramer
Version 3.0.8 - 28th of August 2012
* Fix: empty as-path route printing
* Fix: bug in printing neighbor objects
* Fix: the first route of any MultiProtocol Update did not get its attributes set
* Fix: safi on extensive route printing
* Feature: change the packet dump format to be cisco like
* Change: added configuration self-checking (-t, --test)
* Feature: added parsing of raw update in command line (--decode)
* Feature: add a capability to disable asn4 support (useful when decoding routes)
Version 3.0.7 - 19th of August 2012
* Fix: parser had a bug with multiple flow routes
reported by Dmitry Lisakov and Oleg Alekseenko
Version 3.0.6 - 5th of August 2012
* Fix: ommission during a variable name change
* Fix: the example supervise script
* Fix: withdrawing routes via helper program (issue 5)