-
Notifications
You must be signed in to change notification settings - Fork 81
/
ChangeLog
2386 lines (2157 loc) · 135 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
onload-7.1.0
------------
Update sfc net driver to v4.15.6.1004
Add system-level interface blacklisting
Enable TCPDirect applications to process incoming packet data during receipt
Support for TCPDirect on 'full-featured' firmware
Use running kernel implementation of XDP for Onload XDP support
Add orm_json_lib to assist the development of user tooling
Support recent Linux kernel versions (up to 5.5)
Support recent GCC compilers (up to 9.3)
Support recent Linux distributions:
RHEL 7.8, 8.1, 8.2
Ubuntu 20.04
SLES12 sp5
Deprecate RHEL 7.4
Known issues:
SF-123478-KI/ON-6887: TCPDirect: avoid bind failure when app onload-accelerated
Enhancements:
ON-10663: add "--version" option to onload_cp_server
ON-11132: improve "no response to route request" warning
ON-11221: add cplane_use_prefsrc_as_local to accelerate preferred source IPs
ON-11219/ON-11417: intercept __poll_chk() and fcntl64
ON-11823: add EF_UDP_CONNECT_HANDOVER=2 option to force handover on connect
Bugs fixed:
ON-7482/ON-11203: do not try to use a dead cp_server
ON-8919: Don't report EF_VI_xXQ_SIZE as unrecognised
ON-9171: TCPDirect: use bogomips to determine CPU speed for AMD compatibility
ON-10564: Prevent udevd modifying the permissions of our /dev files
ON-10696: avoid segfault with zf_stackdump when specifying bad stack.
ON-11196/ON-11199: fix memory leaks
ON-11227: explicitly reject per-process options in onload_stack_opt_set_int()
ON-11255: make systemd vs initscript decision at RPM installation time
ON-11408: TCPDirect: improve handling of default attribute values
ON-11418: fix memory mapping issue on AMD processors
ON-11715: fix SO_REUSEPORT when onloadfs device number is big
ON-11784: fix UDP packet drop when ARP failed avoiding possible crash
ON-11810: onload_iptables: treat IP without netmask as /32 not /0
ON-11825: ensure onload.ko loads at boot on RHEL6
ON-11859: avoid race condition leading to panic on creation of a shared stack
ON-11907: handle insufficient large pages correctly, avoiding panic
onload-7.0.0
------------
Update sfc net driver to v4.15.4.1003
Add support for IPv6 acceleration
Add support for Equal Cost Multipath routing
Add support for external timestamps received in packet trailers
Add support for some eXpress Data Path filtering features
Add support for IPVLANs
Install the Onload control plane as a non-root user by default
Support recent Linux kernel versions (up to 5.2)
Support recent Linux distributions (RHEL 7.7, RHEL8.1, Ubuntu 19.04, Debian 10)
Remove support for Debian 8
SF-122792-KI/bug62297: avoid hang at app startup with jemalloc
SF-122793-KI/bug87598: fix possible Tx timestamp corruption if completion occurs after ACK
task37255: enable generation of debuginfo RPMS with --define "debuginfo true"
task61330: add CTPIO to sample trader apps and a cut-through receive example
task69709: enable onload_stackdump lots, dump commands for orphan stacks
task70031: add onload_stackdump vi_info command to display low level VI information
task79510: use endpoint packet reserve feature in WAN profiles
task82743: remove initscript; provide moduled-load.d file
task82876: add onload_stackdump config command to dump CI_CFG_* build options
task83747: add EF_INVALID_ACK_RATELIMIT option
task84118: allocate contiguous memory for descriptors in queues
task84260: speed up onload_stackdump and orm_json
task84389: add address and port filtering to onload_stackdump and orm_json
task84860: allow socket caching with shared local ports
task85385: TCPDirect: improve warming with CTPIO
task86032: add EF_POLL_IN_KERNEL option only to poll event queue in kernel
task86984: create non-root cplane user on installation from package
task87734: add efrink* examples of shared-memory receive (same traffic to multiple consumers)
task87780: let sfcaffinity_config configure NUMA-local cores first for IRQs
SLB-53/SLB-54/SLB-66/SLB-67/SLB-68: add profiles for HAProxy, NGINX, nettyio and redis
bug44995: avoid complaining about unaccessible stacks not requested of onload_stackdump
bug56276: fix bind following a bind on UDP socket resulting in filter removal
bug59700: avoid updating ARP for multicast routes
bug76743: fix list corruption in scalable passive mode with stack sharing/multi-threading
bug80452: update onload_stackdump netstat to show sockets in SYN_RECV state
bug82882: fix sfcaffinity_config check not to treat rss_cpus=1 as an error
bug83463: Detect administrative link up/down for bonding
bug83474: fix onload_install --listfiles
bug83869: fix onload_stackdump crash on rmmod onload
bug84214: fix counting of sock_orphans statistic
bug84221: fix address resolution when no gateway required, avoiding send via OS
bug85138: fix building on Linux >= 4.15 when namespaces disabled
bug86762: fix SO_LINGER=0 in unusual TCP states
bug87474: lookup IP_TRANSPARENT routes in input rather than output context
bug87633: avoid segfault when zf_stackdump run with unknown command or option
bug87958: fix possible Tx of UDP packets on wrong intf after Rx on same socket
bug88147: fix possible memory leaks on forking
bug88174: avoid reporting non-zero Rx timestamps on X2 adapters when timestamp absent
bug88596: don't hand over UDP sockets without filters if EF_UDP_CONNECT_HANDOVER=0
openonload-201811-u1
--------------------
Update sfc net driver to v4.15.3.1011
Allow cplane_server to be run by non-root users
Improve Onload UDP latency for blocking receives
Support recent Linux kernel versions (up to 5.0)
Support recent Linux distributions (RHEL 8.0, Ubuntu 19.04)
Deprecate RHEL 6.7 and RHEL 7.3
Deprecate Ubuntu 18.10
SF-121200-KI/bug85104: Failure of SolarCapture with RSS and ef_vi RSS vport filters
SF-121410-KI/bug84071: Control plane reports 'Integrity failure' after no active slaves seen in active-backup bond
SF-121416-KI/bug84181: Failover of TCPDirect active-backup bond does not occur
SF-122145-KI/bug85169: Onload sends multicast traffic via gateway instead of to multicast Ethernet address
SF-122146-KI/bug85261: Possible crash in cplane when many routes or rules added
SF-122147-KI/bug86244: Onload may accelerate connections on bonds with blacklisted slaves
SF-122448-KI/bug88066: Memory leak in Onload control plane server
bug45205: use errno EMFILE when exceeding EF_MAX_ENDPOINTS on socket/pipe alloc
bug56725: fix possible hang waiting for packet buffers
bug76743: fix list corruption in scalable passive mode with stack sharing/multi-threading
bug78598: fix handling of IPv6 sockets in Onload extensions API and JNI interface
bug79971: improve TCP timer handling performance further
bug80732: handle home stack being set during onload_ordered_epoll_wait()
bug81680: fix incorrect ARP update in fwd table resulting in rare non-acceleration
bug83143: preallocate RSS transparent active & shared ephemeral ports, avoiding warning
bug83515: fix incorrect populating of msg_controllen in recvmsg
bug83524: handle case where NIC is not ready for application key checking.
bug83712: improve filtering to remove an undocumented limit on local addresses
bug83740: fix handover with setsockopt(SOL_IPV6)
bug83795: fix assertion on passive accept with EF_FORCE_TCP_NODELAY=1
bug83856: print all defined socket flags in onload_stackdump
bug83989: fix libc analysis on systems with $TMP mounted noexec and where libc < 2.10
bug84055: fix sending via OS on RT kernels, avoiding deadlock
bug84105: fix TCPDirect to link with librt explicitly (required for RHEL6)
bug84225: fix event count when rolling back attempt to receive TCP packet ahead of event
bug84311: fix setsockopt(SO_BINDTODEVICE) for TCP listening sockets with non-SFC interfaces
bug84786: fix check for stacks in onload_tool, avoiding killing cp_server when stacks present
bug84808: avoid potential socket leak on failure to expand active wild pool
bug84907: don't send RST when closing a TIME-WAIT socket with SO_LINGER=0
bug84926: fix compatibility for get_user_pages() change in Linux 4.4.(>=168)
bug85121: avoid relying on bash extensions in Onload profiles
bug85406: fix incorrect reporting of signal number in core dump on RHEL6
bug85453: cplane: avoid walking past the end of the interfaces table when full
bug85545: fix potential spurious events when changing home stack (EF_UL_EPOLL=3)
bug85753: TCPDirect: correct handling of incoming SYN with a bad src address
bug85904: reinstate use of weak-modules script
bug85909: fix occasional failure to start control plane server on boot
bug85967: TCPDirect: fail graciously when SYN-ACK needs unavailable interface
bug86225: avoid getpid() syscall in endpoint caching
bug86242: fix pacing of last CTPIO block, reducing failure rate
bug86489: pass IP-fragmented packets to kernel
bug86499: ensure zft_pkt_report->start is reported correctly for accepted zockets
bug86637: avoid special handling of zero checksum for TCP sockets
bug86839: fix cp_server logging to use the correct PID
bug87055: TCPDirect: fix handling of stack names at maximum length (20 characters)
bug87117: fix occasional tv_nsec value of 1000000000 in software timestamps
bug87126: avoid rare misroute/latency spike in short window after route/rule/src-addr change
bug87556: take PCIe domain into account when checking for NIC match
bug87563: rate limit messages when cplane can't find LLAP entry
openonload-201811
-----------------
Update sfc net driver to v4.15.0.1012
Add support for bonding in TCPDirect
Add support for transmit timestamps in TCPDirect
Preview support for AArch64, the ARM 64-bit architecture
Improve Onload TCP performance in lossy network environments
Improve Onload TCP latency for blocking receives
New and updated Onload profiles for NGINX, HAProxy and Node.js
Support for new Solarflare adapters X2541 and X2542
Support for recent Linux kernel versions (up to 4.19)
Support for recent Linux distributions (RHEL 6.10, Ubuntu 18.10, SLES 15)
Deprecate AMD architectures prior to Zen
Deprecate 5000-series and 6000-series adapters
Deprecate SLES 11 and Ubuntu 16.04 LTS
task69030: zfsink example reports local port number if not specified
task58517: support getsockopt(SO_BINDTODEVICE)
task69894: support source-specific multicast in TCPDirect
task74732: extend and improve stats descriptions in onload_stackdump
task75138: add creation time to stackdump output
task79664: add lowest_free_pkts statistic
task79926: new tail loss probe implementation, enabled by EF_TAIL_DROP_PROBE
task79958: reinstate datagram callbacks without support for filtering
task79988: fix onload_tcpdump timestamp accuracy
task79990: fix unduly small onload_tcpdump ring size limit and improve performance
task80004: count number of packets missed by onload_tcpdump in stackdump
task80030: implement cp_server --affinity <64-bit mask>
task80076: support Limited Transmit (RFC 3042), controlled by EF_TCP_EARLY_RETRANSMIT stack option
task80123: support Early Retransmit (RFC 5827), controlled by EF_TCP_EARLY_RETRANSMIT stack option
task80411: increment IP ID field in TCP segments (allows GRO on old kernels)
SF-120852-KI/bug80441: Interoperability issue between MacOS stack peer and an Onload stack peer can result in data corruption
SF-120923-KI/bug81874: Data corruption when receiving scattered packets with RX batching
SF-121076-KI/bug79902: vm_op_nopage() failed messages observed in kernel logs when using onload
SF-121123-KI/bug79517: Incorrect transmit timestamps can be reported for transmit-only ef_vi applications
SF-121132-KI/bug80440: Onload TCP characteristics affected by shortened timer periods
SF-121136-KI/bug82114: The default Onload forwarding table is small
SF-121200-KI/bug80271: Failure of SolarCapture with RSS and ef_vi RSS vport filters
SF-121203-KI/bug80246: Onload control plane can fail to handle interface renaming
SF-121204-KI/bug80538: Onload can miss failover of interfaces in LACP bond
SF-121205-KI/bug80532: Occasional send latency in the order of 30 microseconds
SF-121206-KI/bug80833: Onload drops transmit packets when sending to many multicast groups
SF-121211-KI/bug81454: Onload stack sharing using EF_SHARE_WITH=-1 does not work correctly
SF-121234-KI/bug77419: Application hang with kernel trace showing oo_timesync_wait_for_cpu_khz_to_stabilize
SF-121283-KI/bug83129/bug83155: Incorrect receive timestamps can be reported occasionally by Onload, TCPDirect and ef_vi
bug22926: improve socket reuse by connect()
bug33044: use MAP_POPULATE for non lazily-allocated resources where beneficial
bug34353: allow onload_stackdump doc with loaded drivers
bug35981/bug81082: apply workaround for 7000-series datapath lockup at ef_vi level
bug38556/bug79834: fixes to SACK implementation
bug40912: getsockopt() and setsockopt() reflect the fact that IP_MULTICAST_ALL is fixed to 0
bug51866: fix to delete orphaned stacks with TIME_WAIT sockets when free VIs exhausted
bug56537: validate optval on setsockopt()
bug58185/bug60057: fix zc_send(tcp sock in !sync state)
bug66006: TCPDirect to use its own tx req id instead of one supplied by ef_vi
bug67336: fix dracut -f --kver onload_install failure on RHEL 6
bug67438: check EF_USE_HUGE_PAGES setting before carrying out other huge pages checks
bug67711: TCPDirect to count RX discard events
bug68596: onload_install suceeds without unnecessary dependencies unless --require-optional-targets specified
bug69502: delegated send: honour SO_SNDBUF limitation for send window
bug70056: do not try to send negative-sized datagram
bug70394: fix calculation of maximum tcp_adv_win_scale value to use
bug70873: add zf_reactor_perform_attr() to take a user-specified reactor_spin_count
bug72033: options to improve rate of efforward application
bug73219: basic support for IP options
bug74477: fix building with CI_CFG_PIO off
bug75645: empower user with CAP_NET_RAW when necessary to trigger ARP via OS
bug75709: report timer initialisation failure in release builds
bug75781: fix 500us latency receiving SYNACKACK from an epoll-using application in non-interrupt-driven blocking mode
bug75781: pick a correctly-affinitized IRQ for an application using clustering
bug76434: add public API to change logging location
bug77423: guard onload library initialisation against thread races
bug77607: modify zf_version() to return the version string
bug78119: disable unnecessary pid map generation for tcpdump, speeding up startup
bug78559: fix case where signal received while waiting for cplane startup
bug78566: fix spurious 'No space in ephemeral port table' failure.
bug78683: update openonload.spec file to run dracut
bug78948: fix TCPDirect to track which incoming sequence numbers have been acked
bug79067: check for FORCE_EV_MERGING capability before using it
bug79183: ensure that cp_server is usable before syncing with it
bug79189: fix build without CI_CFG_PIO and with CI_CFG_CTPIO
bug79229: add onload_install options to skip initramfs and TCPDirect
bug79272: fix memory leaks when unmapping stacks from processes
bug79356: fix build without CONFIG_NAMESPACES
bug79460: remove dependency on jansson for orm_json
bug79548: packet buffer allocation: add early check for limit
bug79631: fix cplane for nested namespaces
bug79669: fix missing MAC address when resolving route under a ScaleOutOnload license
bug79678: fix network interface reference count zeroing at allocation time
bug79688: reset UL-only ep-to-fd mapping at handover
bug79697: increment no_match_in_active_wild stat instead of injecting to kernel pointlessly
bug79733: add tcp_connect_* stats for different failure cases
bug79765: add various cplane stats to mibdump
bug79808: use stdout instead of syslog for onload_mibdump internal
bug79817: fix clustering on 6000- and 5000-series NICs.
bug79830: fix sequencing of potentially-deferred send and shutdown
bug79915/bug80157: fix sleep-spin epoll_wait() timeouts to match configuration
bug79929: support TIME_WAIT assassination; turn it on by default
bug79962: fix rare crash closing a listening socket in scalable passive mode with socket caching
bug79964: reply with empty ACK to SYN in LAST-ACK state
bug79966: avoid unnecessary checking of FIN flag in SYN-SENT state
bug79971: rework scheduling of timers to improve TCP retransmission behaviour
bug79989: onload_tcpdump: fix assertion fail on restart with debug build
bug80033: ensure early errors in cp_server startup get logged
bug80054: improve policy on setting PSH flag
bug80206: avoid removing record for teaming slaves that become inactive
bug80237: add zf_stack_has_pending_events() to TCPDirect for UDP
bug80265: on stack allocation in TCPDirect do not leak VI on fw variant mismatch
bug80287: onload_tcpdump: fix broken dump of large packet payload
bug80288: fix HW timestamp with shared-stack UDP multicast replication
bug80357: improve sequence number interop when reusing TIME_WAIT; new stack options tune ISN selection policy and new ISN cache
bug80373: fix UDP Path MTU discovery
bug80384: when bond state changes, update fwd entries instead of removing
bug80389: fix early RTO timeouts and broken tail-drop probes
bug80448: do not scale window while in SYN-SENT
bug80517/bug80557/bug80850: Improve duplicate ACK processing
bug80585: fix failure in some circumstance to retrieve timestamp from queue, avoiding crash
bug80600: do not split a segment with paylen==MSS that also has a FIN
bug80624: fix loss of non-blocking sync state for sockets after trip through socket cache
bug80670: ignore RST packets with bad timestamps in SYN-RECV
bug80713: fix RX sniff filter removal via ef_vi_filter_del
bug80765: add option to ignore urgent flag in received packets and count such packets
bug80765: avoid infinite loop in recv() when receiving SYN mid-connection
bug80857: fix fast delegated sends to be done when possible, avoiding assertion failure
bug80912: limit advertised MSS when setsockopt(TCP_MAXSEG) applied.
bug80929: fix TCPDirect delegated send to respect setting of max_delegated_wnd over 0xffff
bug80958/bug80959/bug80960/bug80961/bug81107/bug82076: fix 'urgent data' processing defects
bug81023: onload_move_fd: handle out-of-packets condition
bug81035: fix error in atomic counter implementation, avoiding rare lock-up
bug81039: fix decision to prime interrupts at user level and report in statistic
bug81256: avoid corrupting O_CLOEXEC flag on fcntl(F_GETFD)
bug81272: keep trying to resolve an ARP entry that has become stale
bug81374: fix Onload sends and receives of more than 2GiB, avoiding SIGSEGV
bug81423: avoid SIGFPE in rare case when write occurs close to RST receipt
bug81455: interpret and report TX alternatives resources correctly on X2 NICs
bug81502: do not enter COOLING after RTO-triggered retransmit
bug81503: zf_delegated_send_complete(): set TCP PUSH flag for the last segment
bug81534: fix assertion when receiving scattered packets in high-throughput mode
bug81574: fix cause of error when trying to release unsent buffers after onload_zc_send() failure
bug81699: onload_stackdump: fix kernel assertion in oof_socket_dump_w_lp()
bug81703: on fd alloc failure restore ORPHAN aflag correctly
bug81749: fix memory corruption in splice()
bug81775: add interception for syscall() libc function
bug81778: improve memreg-order; fix TCPDirect MCDI RX errors with 1 GB huge pages
bug81787: improve TCP slow-start behaviour and don't consider retransmissions in RTT estimates
bug81878: validate length of user-provided interface name
bug81906: do not reopen TIME_WAIT connection for non-TCP_LISTEN sockets
bug82089: accept FIN + RST from macOS
bug82139/82372: don't update peer timestamp on receipt of invalid ACKs
bug82140: allow SYNACK-ACK without timestamp option
bug82308: fix TCPDirect to disable CTPIO when so configured
bug82327: rate-limit messages about corrupted packets
bug82408: implement expected behaviour for TCP recv(MSG_TRUNC), ignoring destination buffer
bug82423: avoid packet leak and re-send FIN after initially failing to allocate packet for it
bug82448: fix value reported by zft_send_space() when the send window is small
bug83101: avoid infinite loop in signal handling when SA_ONESHOT used
bug83198: reduce thread stack requirement in userspace
openonload-201805-u1
--------------------
Update sfc net driver to v4.14
SF-120489-KI/bug80195: Fix PIO data corruption in ef_vi or TCPDirect when writing and transmitting on different CPUs.
openonload-201805
-----------------
Update sfc net driver to v4.13 to support X2-based adapters
Add support for X2 adapters
Add support for CTPIO low latency send mechanism
Add support in TCPDirect for transmit path warming
Add support in TCPDirect for hardware receive timestamps
Add support in TCPDirect for stacks to be created without PIO
Extend Onload's support for scalable filters and shared local ports
Extend Onload's clustering to support hot restart of clusters (e.g. with nginx)
Accelerate scalable sockets bound to non-SFC addresses: oof_use_all_local_ip_addresses module option
Allow a socket to be a member of multiple epoll sets
Add sleep-spin mode for epoll_wait to reduce CPU usage when idle: EF_SLEEP_SPIN_USEC
Add support for SO_SNDBUFFORCE and SO_RCVBUFFORCE
Add new profiles for nginx-type workloads and Scale-Out preview
Add latency-best profile to use cut-through PIO
Add EF_PREALLOC_PACKETS to allocate all packets during stack creation
Add preview of delegated send API for TCPDirect
task65669: Support EF_CLUSTER_SIZE=1.
task74619: Add ef_vi checksumming utility functions.
task75513: Add Nginx reverse proxy Onload profile
task75676: Extend EF_CLUSTER_RESTART to allow new cluster of different size.
task75917: add stackdump --nopids to avoid long execution time if many processes
task76067: Avoid dropping and retaking stack lock in epoll3.
task76952: Implement EF_TCP_SHARED_LOCAL_PORTS_PER_IP.
task77608: improve Onload Remote Monitor to return useful sets of stats
SF-119927-KI/bug78199/bug77253: fix segfault when closing Onloaded socket on KPTI kernels
SF-119131-KI/bug74749: avoid failure to sync control plane after many stacks created
bug44574: onload_stackdump: fix garbage output when dumping large orphaned stacks.
bug69035: ensure CORKed packets get sent once restriction on sending is lifted
bug70594: increase CI_CFG_TCP_(RCV|SND)_MAX to the normal Linux values
bug71087: fix potential race in ci_udp_recvmsg_common()
bug71425: allow TCPDirect to measure time on AMD processors
bug71448: correctly handle same IP address assigned to both SFC and non-SFC interfaces
bug72030: add EF_TCP_MIN_CWND to control how low congestion window can fall
bug72030: add ONLOAD_DELEGATED_SEND_RC_NOCWIN to delegated send API
bug72500: ensure flushes properly completed to avoid use-after-free warning
bug73756: improve EF_SYNC_CPLANE_AT_CREATE option
bug74139: avoid crash when doing loopback connect to disappearing stack.
bug74193: fix module-load on kernels that don't export __put_task_struct.
bug74299: do not automatically run onload_cp_server on startup if grace_timeout=0
bug74377: fix build with GNU libc 2.26
bug74418: accept TCP segments with missing TSO field to avoid unexpected retransmissions/duplicate ACKs
bug74439: fix race in deciding if VLAN-over-VLAN interface is acceleratable
bug74477: fix build when CI_CFG_PIO=0
bug74594: onload_tool: Don't warn about absent /proc/driver/onload/stacks.
bug74629: ensure connecting stack is unlocked on failure to create loopback listener.
bug74630: avoid leaking stack reference when encountering non-TCP acceptq member.
bug74635: fix problems on error path in efab_tcp_drop_from_acceptq.
bug74670: bug73871: avoid lock ordering violation in ci_tcp_rcvbuf_unabuse()
bug74837: correctly deal with route refresh and ARP resolution on some configurations
bug74875: increment tcp_active_opens stat for non-blocking connection attempts
bug74921: epoll_pwait(): always spin when asked to
bug74926: rate limit messages about "pkt handover failed"
bug74941: ensure that confirmed ARP entry does not go to STALE
bug74973: correctly detect change in MTU on bonded interfaces
bug75009: provide EF_PERIODIC_TIMER_CPU option to configure pinning of periodic work
bug75096: don't overwrite src addr when asking control plane to resolve a route
bug75246: with EF_TCP_SERVER_LOOPBACK=2 fake up a connection if client has gone to avoid getting stuck
bug75264: add ARP confirmation statistics to control plane
bug75264: improve speed of updating state when confirming ARP to avoid unnecessary ioctls
bug75486: fix fd leak in onload_fuser script.
bug75508: initialize Onload stack reference counter on all paths to avoid stack leak
bug75535: ensure proper LACP failover when remote end is down
bug75578: speed up moving sockets between stacks
bug75625: ci_netif_pkt_wait: reap sockets even if no events to find packets
bug75625: fix handling of dropped stack lock when connecting over loopback to avoid stuck stack
bug75644: fix build and driver unload when CONFIG_NAMESPACES is not defined.
bug75648: fix crash when overflowing acceptq and out of synrecv buffers.
bug75653: correctly handling window scaling in SYN packets
bug75751: fix handling of ICMP Too Big with len=0
bug75783: fix efab_terminate_find_all_stacks() to follow RCU rules
bug76101: fix handling of spaces in variables set with onload_set in profiles.
bug76157: do not reply with ACK to unacceptable ACK to avoid ACK storm
bug76233: handle_rx_listen: do not try to answer to loopback if traffic received from non-loopback
bug76263: avoid deadlock when handing over a socket with SO_LINGER on RHEL6
bug76302: fix send-via-os to use proper if index for policy routing
bug76445: fix crash when main netns cp_server attempts to notify non-ready cp_server of other netns
bug76482: fix ef_pd_alloc handling of buffer space needed for getpwuid_r()
bug76627: allow onload_tool to do driver reload even if orphan/zombie stacks present
bug76629: allow disabling per socket passive ep cache using EF_PER_SOCKET_CACHE_MAX=0
bug76666: don't start control plane if /dev/sfc_char can not be opened yet
bug76752: avoid use of invalid timeout and potential hang in WODA.
bug76867: allow local loopback within clustered stack
bug76878: improve errno handling in ci_tcp_connect()
bug77067: fix syncing socket options to kernel socket when in network namespace
bug77121: remove 2.6 from linux mmake driver build target name to avoid confusion with more modern kernel versions
bug77126: return error if syscall table not found to prevent driver load and avoid subsequent crash
bug77141: speed up ci_tcp_connect_find_local_peer() when netif filter present
bug77146: fix loop if TCPDirect send is longer than 64KB
bug77283: drop IP-fragmented TCP packets in scalable modes, avoids stream corruption
bug77368: add new stackdump "stacks" command to produce the default no-arg behaviour
bug77450: handle EF_EVENT_TYPE_RX_MULTI_DISCARD in onload for high-throughput modes
bug77461: improve error message on unrecognised ioctl.
bug77643: fix onload_stackdump watch_stats mixing up stats
bug77667: fix handling of multicast membership when handing over on join.
bug77710: allow transport_config_opt.h path to be overridden on make command line to provide different set of build time defaults
bug77712: improve TCPDirect handling of out of order packets partially overlapping received data
bug77743: fail driver init on global workqueue allocation failure to avoid subsequent crash
bug77801: fix errno handling when EF_MCAST_JOIN_HANDOVER set to get correct behaviour
bug77879: add "onload_stackdump -z netstat" to get netstat-like output for orphan stacks
bug77888: avoid crash with concurrent bind() and close() on clustered socket
bug77949: improve coredump signal handling to release all stack locks
bug77957: reduce log level for UDP socket create error
bug77977: display ready_lists and process PIDs in stackdump netif
bug77986: fix epoll behaviour on handover to avoid getting stuck in epoll_wait()
bug78141: allow multiple cached FDs per cached endpoint
bug78243: treat ESRCH the same as ENOENT in stackdump when searching processes to avoid unexpected error
bug78297: drop NO_MULTICAST flag when resolving route before join so EF_FORCE_SEND_MULTICAST does not affect receive
bug78368: fix socket reference counts to avoid failure in buffer leak checks
bug78410: in SYNRECV state, make promoted socket ready when receiving ACK with data
bug78462: fix race in socket status ready mask to avoid stuck waiting application
bug78482: handle race between OS event and removal from epoll3, avoids assertion in debug build
bug78567: Remove unused --fwd_req_max option from onload_cp_server
bug78628: take netif lock in case of deferred work contention to avoid reordering of TCP stream
bug78640: improve errno handling when stack is unlocked and processes deferred work
bug78734: when doing user-level epoll poll non-accelerated sockets fairly, avoids starvation of some sockets
bug78831: wpdated onload spec file to run depmod in all cases
bug78868: fix broken efch ioctls for 32bit applications
bug78956: don't defer SIGILL signal
bug79117: initialize rcv_wnd_right_edge_sent for TCP loopback, avoids assertions in debug build
bug79120: don't crash when removing an IP address used by a cached socket.
bug79135: preserve O_NONBLOCK flag after attaching FD from socket cache to avoid blocking when non-blocking was requested
bug79149: fix errno handling in citp_tcp_setsockopt()
bug79149: fix error path in citp_tcp_ep_acquire_fd() caller
bug79283: avoid kernel data leak to UL in oo_op_route_resolve()
openonload-201710-u1.1
----------------------
Update sfc net driver to v4.12.2.1014
Add support for recent Linux kernels (up to 4.16) and those using CONFIG_RETPOLINE
openonload-201710-u1
--------------------
Update sfc net driver to v4.12.2.1006
Add support for recent Linux kernels (up to 4.14.11)
openonload-201710
-----------------
Update sfc net driver to v4.12.1.1016
Add support for ScaleOut Onload NICs
Add support for multiple namespaces
Add support for MACVLAN interfaces
Add support for policy routing (replacing EF_TCP_LISTEN_REPLIES_BACK)
Improve support for Onload in Docker containers
Add support for TCPDirect in Docker containers
Add support for recent Linux kernels (up to 4.13)
Rework Onload's control plane to avoid non-GPL taint of kernel modules
Rework Onload's bonding support to avoid polling files in /proc
Rework Onload's black-listing and white-listing of interfaces
task41754: add support for IP_MULTICAST_IF option for struct ip_mreq
task43267: add ef_vi functions for warming PIO transmit path
task45737: add example ef_vi app for receiving jumbo frames
task51485: add nanosecond pcap-ns format support into onload_tcpdump
task52751: allow acceleration of up to 16 interfaces when configured
task53051: include details in efsend sample app for how to achieve high throughput
task60244: add vlan support to efsend sample application
task62742: support for per-stack toggling of TCP header timestamp option: EF_TCP_TSOPT_MODE
task64641: add option EF_PD_MCAST_LOOP to ef_send example
task65597: add onload_stackdump vi_stats command to report no_desc drops (and others)
task65597: rename select_primes to muxer_primes in stackdump
task65597: add more details of timestamping state to stackdump output
task66897: provide per-socket packet count for TCP sockets in stackdump
task67177: allow gdb to access Onload's shared memory mappings
task67689: allow TCPDirect TCP alternatives API callers to calculate their buffer requirements accurately
task67745: allow pauses between sends in eftsloop sample application
task68015: add zf_attr_get_* functions to TCPDirect API to read attribute values
task68726: add meta-option to extension API (ONLOAD_SPIN_MIMIC_EF_POLL) to mimic EF_POLL_USEC
task69697: improve packet rate achievable with ef_vi sample applications
task69900: add zero-copy API sample code: tests/onload/extensions/zc_udp_recv.c
task70734: add test app to demonstrate ef_vi PIO warming: efsend_pio_warm
task70952: add zfdelegated_client benchmark - TCPDirect equivalent to efdelegated_client
task72554: Small speedups for efforward_packed
task73181: add support for gcc-7
task73219: include IP stats and discard counts in stackdump lots, improve formatting
bug47538: report failure from 'onload_install --nobuild' if there is no build directory
bug50141: check onload version when opening onload driver handle
bug51146: fix potential deadlock due to inconsistent fdtable and epoll lock ordering
bug53979: clarify onload_delegated_send extension API return codes
bug54427: fix F_SETPIPE_SZ to return EBUSY if too many buffers are busy
bug55414: add per stack counter handover_accept like per socket counter n_os
bug59268: correct acceleration behaviour of team with non-acceleratable interface as slave
bug59520: ensure onload_ordered_epoll_wait() unblocks if epoll_ctl() is called
bug59819: don't ignore keepalive EF_ variables
bug60256: don't send unacceptable RST packet when receiving on closed socket
bug62342: do not install filters on NICs which the stack has no VIs on (e.g. packed stream NICs)
bug62756: do not warn on installing MAC+PROTO filter if got PROTO filter instead
bug63194: fix potential segfault when calling onload_ordered_epoll_wait() from several threads
bug63300: avoid log messages when handing over UDP packets to kernel due to no ARP
bug64707: include details of -p option in onload usage information
bug64738, bug68473: reduce long-running tasks with stack lock held to avoid EBUSY from operations that need stack lock
bug64785: get correct kernel version in dkms scripts when building for a different kernel to the running one
bug64792: fix receiving 0 byte UDP datagram via OS using zero copy API
bug65065: fix ef_vi_receive_set_discards() to correctly use the supplied masks
bug65842: address various issues in openonload spec file
bug66195: correctly use module_mutex to avoid race causing list corruption on module load/unload
bug66287: fix filter assertion failure and software filter leak with EF_TCP_SHARED_LOCAL_FILTERS
bug66508: reject negative alt_count and zero alt_buf_size in TCPDirect TCP alternatives API
bug66537: avoid caching of IPv6 sockets
bug66581: fix assertion failure during endpoint move: flush pending atomic operations before moving endpoint
bug66652: fix assertion failure during stack free: do not free endpoint before its filters are removed
bug66721: fix crashes with EF_CLUSTER_RESTART
bug66829: onload_tcpdump: add --no-match option to dump unmatched traffic only
bug66886: fix '<func> falls through to next function' warnings on RHEL 7.3
bug66920: fix crash when handling packets with invalid lengths and checksums
bug67043: do not send RST when aborting SYN-SENT connection in TCPDirect
bug67159: fix handling of packets with errors with EF_VI_RX_EVENT_MERGE
bug67181: return -EAGAIN rather than 0 if onload_recvmsg_kernel() called when nothing to do
bug67185: check msg_iovlen is valid before doing MSG_WARM zc_send()
bug67225: fix memory leak in epoll mode 1 - free eitems when close(e_fd)
bug67327: print a message when starting TCPDirect if not using low-latency firmware
bug67330: increment pio_pkts counter when templated send uses PIO
bug67356: return error in proper format from send(MSG_WARM) if message too large
bug67530: disable EF_TCP_SHARED_LOCAL_PORTS for loopback-only stacks
bug67580: don't complain when receiving ACK packets in TCP TIME_WAIT state
bug67633: fix counting of time-wait state loopback sockets when orphaning stack
bug67658: add extension to control filter install for UDP unicast (onload_socket_unicast_nonaccel())
bug67708: before installing filters clear pending NON_ATOMIC jobs to avoid assertion failures
bug67839: correct stackdump threads reporting of priority
bug67851: bug67853: set EPOLLRDHUP when reaching CLOSING state in TCPDirect
bug67853: handle FIN with zero window and non-empty sendq in TCPDirect
bug67905: fix potential deadlock in ci_tcp_connect()
bug67929: make onload robust to non-monotonic clocks
bug67988: onload_zc_recv(): fix crash when callback modifies args
bug68091: updated onload spec file to avoid installing weak-updates symlinks for all kernels present
bug68217: unlock stack before failing on packet-map failure to avoid stuck stack when stack sharing
bug68405: allow the congestion window to reduce below the amount of unacked data in TCPDirect
bug68426: make fcntl(F_[SG]ETPIPE_SZ) retuns value consistent with Linux
bug68473, bug68838: scalable passive: socket stays scalable with so_reuseport and cluster_ignore
bug68502: do not renege on advertised TCP window when SO_RCVBUF is reduced
bug68504: fix regression where ef_pio_alloc() was incompatible with older drivers
bug68754: don't warn in debug build about mismatched UDP packet if stack has scalable filter
bug68800: avoid hang on dup2 onto new stack fd after exec
bug68838: allow moving SO_REUSEPORT sockets when cluster_ignore is set
bug68937: avoid installing sw/hw filters for removed ip adresses
bug69172: update stack frc before delivering UDP loopback to get accurate timestamps
bug69175: correctly handle hw TX timestamping when NIC is reset to avoid gap in TCP stream timestamps
bug69408: avoid long wait for TCP hw TX timestamps if app calls recvmsg(MSG_ERRQUEUE) in tight loop
bug69633: split packet in send queue if receive window too small for whole segment to avoid unnecessary wait
bug69675: ef_vi: Fix bad assert that fires when RX EV merge limit is increased
bug69676: fix overflow in packet count reported by efsink and efsink_packed
bug69782: ef_vi: Fix failure to handle RX event merging limit of 15
bug69827: ef_vi: Fix packed stream when on VI linked to separate EVQ
bug69841: use static with inline in function declarations to help avoid compiler warnings
bug69848: postpone handling of out-of-order packets when rxq is not fully processed to avoid assertion in TCPDirect
bug70243: make type cast match function return type in ef_packet_stream_packet_*()
bug70426: avoid memory leak on cluster allocation failure
bug70515: improve nested epoll caveat for EF_EPOLL_CTL_FAST documentation
bug70553: avoid possible send on closed TCP connection race
bug70575: fix multiple onload_iptables rule parsing issues
bug70638: document error returns from ef_vi_transmit_alt_alloc()
bug70651: efpio and efpingpong could ignore events that came after first RX event in each poll
bug70681: reduce likelihood of exceeding maximum onload_iptables rule length
bug70682: use spin_lock_bh() in oo_timesync_update() to avoid lockdep warnings
bug70905: clarify ef_vi_transmit_push() documentation
bug71053: use syscalls for sendmmsg()/recvmmsg() when passing to kernel instead of dlsym
bug71134: ensure TCPDirect zockets and handles are freed the right way: fixes leak of packet buffer
bug71360: provide correct fdtable lock status when dropping fdi ref, avoids potential deadlock
bug71376: TCPDirect: log sending failures at trace level
bug71435: TCPDirect: fix buffer size passed to inet_ntop
bug71447: TCPDirect: set initial ssthresh = 0xffff as per RFC5681
bug71451: Avoid deadlock when calling citp_fdtable_lookup_noprobe with fdtable lock
bug71512: TCPDirect: finish route lookup before constructing packet headers to get correct VLAN
bug71515: TCPDirect: don't use a multicast address as source address
bug71682: fix handling of single char options in timestamping sample code to avoid app segfault
bug71727: epoll3: fix unkillable processes following kill -9 of another process with shared stack
bug71783: fix handling of bind with listen and EF_TCP_SHARED_LOCAL_PORTS
bug71809: fix handling of bind with handover and EF_TCP_SHARED_LOCAL_PORTS
bug72036: fix crash in TXQ-purge workitem when stack allocation fails
bug72065: do not warn about EF_LOG_TIMESTAMPS, it is a known valid option
bug72147: fix dropping of loopback sockets in acceptq when stack destroyed to avoid leak
bug72279: improve errors reported from ef_vi_transmit_alt_alloc
bug72388: correctly handle VLANs in onload_tcpdump
bug72669: fix behaviour when calling epoll_wait with a bad epoll file descriptor
bug72773: fix removing sockets from epoll set when epoll fd is closed
bug73121: fix use-after-free error when unloading resource driver
bug73274: correctly spread traffic between ports in LACP bonds.
bug73334, bug62342: fix crash when installing drop filter with clustering
bug73493: fix 'deallocating None' crashes in solar_clusterd
bug73582: fix fdi refcounting in reuseport clustering to allow stack to close after fork
bug73726: avoid long timeout on shutdown of blocking socket in connect()
bug73855: avoid firmware assertion when changing DROP filters
bug73869: install correct filters on down hardware ports for reuseport clustering
bug73871: fix crash with EF_TCP_RCVBUF_STRICT when reaping TCP receive queue
bug74264: count failures to send due to control plane tables being full
bug74569: fix crash in onload_ordered_epoll_wait() with concurrent UDP receive
openonload-201606-u1.3
----------------------
Update sfc net driver to v4.10.7.1001
Support for recent Linux kernel versions (4.11)
Support for recent Linux distributions (RHEL 6.9, Debian 9, Ubuntu 17.04)
SF-117344-KI/bug66544: fix MSG_WARM behaviour when called on different socket but same stack as send()
SF-118285-KI/bug66847: check fget() result in epoll calls to avoid NULL dereference
SF-117911-KI/bug67477: retain original security context after allocating packet buffers
SF-117847-KI/bug68310: improve TCP_CORK behaviour when option is removed with fragmented send queue
SF-117847-KI/bug68640: ensure setting TCP_NODELAY while TCP_CORK in use results in flush of pending packet
SF-118230-KI/bug68653: avoid crash in onload_iptables
SF-118033-KI/bug69492: fix leak of syn-recv socket state and state corruption when failing to allocate internal state
SF-118296-KI/bug69764: fix detection and handling of non-Ethernet interfaces, e.g. IP tunnels.
SF-118224-KI/bug70468: fix close() trampolining with kernel built with CONFIG_HARDENED_USERCOPY
SF-118106-KI/bug70825: fix TCP RTT estimation with ONLOAD_MSG_WARM and no TCP timestamp option
SF-118231-KI/bug71078: avoid possible deadlock between fd handover, setsockopt, and UDP send without bind()
SF-118229-KI/bug71157: TCPDirect could send 1 byte beyond advertised receiver's window
SF-118299-KI:bug71526: correctly detect bonding failure for multicast over VLAN-over-bond interface
bug67748: report error correctly if ONLOAD_MSG_WARM used after connection is broken
openonload-201606-u1.2
----------------------
Update sfc net driver to v4.10.4.1005
Support for recent Linux kernel versions (4.9, 4.10)
SF-117768-KI/bug65337: ignore changes when time jumps forward during CPU speed estimate
SF-117352-KI/bug65469: avoid spurious retransmits when ods_complete() called after ACK received
SF-117777-KI/bug66777: prevent potential crashes with concurrent UDP receive-queue access.
SF-117771-KI/bug67072: fix race condition causing potential deadlock in oo_rwlock_lock_write()
SF-117796-KI/bug67325: prevent kernel panic if NIC reset occurs for partially-initialised Onload stack
SF-117813-KI/bug68405: fix MCDI TX errors with large sends on lossy connections with TCPDirect
SF-117770-KI/bug68763: send fast retransmits in response to duplicate acknowledgements in TCPDirect
SF-117704-KI/bug68933: fix close-trampolining on 4.6 and later kernels
SF-117774-KI/bug69206: detect LACP bond active slaves correctly on recent kernels
bug64298: Respect EF_ONLOAD_FD_BASE for re-probed netifs
openonload-201606-u1.1
----------------------
task67184: Improved TCPDirect latency by ~50ns on dual-socket systems
SF-117521-KI/bug66871: fix crash caused by failure to complete TCPDirect stack allocation
SF-117522-KI/bug67797: fix socket and/or packet corruption with templated sends API on 8000-series NICs
SF-117525-KI/bug67676: accelerate multicast traffic even when interface is brought up before Onload discovers it
SF-117526-KI/bug67002: don't accelerate traffic for an IP address that has been removed from an interface
openonload-201606-u1
--------------------
Update sfc net driver to v4.10.0.1011
Add TCPDirect library and API
Support for recent gcc versions (6.1)
Support for recent Linux kernel versions (4.8)
task61897: improve TCP active-open latency: see EF_TCP_SHARED_LOCAL_PORTS.
task65068: add single interface mode to WODA: see EF_WODA_SINGLE_INTERFACE
task64925: report resources for TX alternatives in ef_vi capabilities API
task63419: add onload_socket_nonaccel extension API to create non-accelerated socket
task62869: add JNI bindings for WODA
SF-116522-KI/bug63307: fix RTT calculation without TCP timestamps when loss is occurring.
SF-117038-KI/bug64298: avoid using low fds for onload internals to fix fd clash with java.
bug62973: show CLOSED TCP sockets in onload_stackdump and OnloadRemoteMonitor.
bug62104: avoid storm of wakeup events resulting in "MCDI request was completed without an event"
bug63384: bug62973: Fix EINVAL on listen(); shutdown(); listen();
bug61421: add SIGFPE to the list of signals we do not intercept by default
bug51442: fix bashism in onload_tool script
bug63134: OnloadRemoteMonitor - add option to select a single stack by name
bug62994: handover TCP listen socket if Onload iptables prevents acceleration.
bug62994: handover socket during TCP connect() if Onload iptables blocks filters
bug34753: improve handling of EF_PREFAULT_PACKETS - only error if can't reach EF_MAX_PACKETS
bug60745: improve onload_stackdump help output for filters
bug63136: OnloadRemoteMonitor: add ability to retrieve EF_* settings
bug63134: OnloadRemoteMonitor: add option to select a single stack by name
bug63723: handle inconsistent cplane state without assertion
bug63799: fix timestamp output and decode sync flags in efsend_timestamping.c example app
bug63763: add onload_cplane with weak-modules in RPM spec file
bug63322: improve WODA behaviour (return faster) with EF_UL_EPOLL=3.
bug63982: fix build with gcc 6.1: undefined reference to ____ilog2_NaN.
bug63319: fix recvmmsg() with zero timeout failing to return data.
bug63745: try to load sfc_aoe module if installed
bug64249: avoid leaking stacks that were destroyed before application termination.
bug61373: onload_install changed to update an existing initrd using dracut --force
bug64486: fix trampoline code to work without KALLSYMS_ALL
bug63986: tell filter code to avoid blacklisted hwports
bug63986: add /proc/driver/onload/filter_*
bug64221: add /proc/driver/onload_cplane/hwport2ifindex
bug64680: task59983: Fix panic when passing fds through PF_UNIX sockets.
bug64732: when handling SO_REUSEPORT bind, only unlock socket if it was locked
bug64435: add EF_LOG_THREAD environment to include thread id in log messages
bug64853: fix hexdump option in efrss sample, was printing all zeros
bug64889: don't generate warnings about unexpected MCDI events for MCDI_EVENT_CODE_AOE (0x18)
bug63563: OnloadRemoteMonitor - output integer values using signed/unsigned format
bug57881: provide example of how to use OnloadRemoteMonitor with collectd to record stats
bug63562: OnloadRemoteMonitor - adjust output formats for special fields e.g. IP addresses
bug63774: disable huge pages if incorrect hugepage size configured and avoid kernel crash
bug65144: Onload: with EPOLLET, return all events or nothing, fixes reporting when level-triggered events present
bug49599: avoid stack-locked assertion when freeing SW filters in stack dtor.
bug65497: Add extra logging for odd failure cases in libstack_mappings_init
bug63562: OnloadRemoteMonitor - ci_ifid_t displays as signed
bug64971: OnloadRemoteMonitor - provide finer-grained control of output
bug65774: fix packed stream buffer sizes returned by capabilities API
bug65067: ensure we periodically poll while spinning in WODA to process stack in timely fashion.
bug63768: install orm_json and orm_webserver on 64-bit systems
bug63914: fix sfcaffinity_config for interfaces with ethX-ptp irq channels
bug66047: fix kernel panic when calling ef_pio_unlink_vi() twice.
bug66190: fix memory leak in memreg_rm_alloc()
bug66155: initialize sb_aflags in ci_active_wild_state_init() to avoid assertion on close of reuseport socket
bug64746: permit EPOLL_CTL_DEL with invalid pointer for event structure
bug65026: correctly initialise EF_ACCEPT_INHERIT_NONBLOCK
bug66477: use dev_base_lock instead of rtnl to protect for_each_netdev(), makes teaming work on RHEL7.3
bug66612: fix crash allocating stack when low on memory
openonload-201606
-----------------
Update bundled sfc net driver to v4.8.2.1004
Add support for Solarflare Flareon Ultra 8500 NICs
Add support for recent kernel versions, OS distributions and gcc compiler versions
Add ef_vi "transmit alternatives" API
Add ef_vi capabilities API to allow runtime discovery of available features
Rework ef_vi sample applications and add new eflatency benchmark
Separate distribution of sfc_aoe kernel module from Onload
SF-116299-KI/bug59638: ensure filters are freed before endpoint is freed
SF-116030-KI/bug60602: Bug57274: fix multicast delivery to >2 receivers
bug1068: add route metric support
bug25461: add option for TCP to reply back on interface packets received on (basic source-based routing)
bug43435: fix rare kernel panic during onload module reload
bug45791: display interface name when timestamping failure message raised
bug50671: fix ef_memreg_alloc() with len=4GiB or larger.
bug51688: Add support for RX event batching to ef_vi and onload
bug52168: report whether hardware clock is in-sync via stackdump
bug53985: force TCP recv() to return 0 if properly shut down
bug54583: fixing search for syscall table for PPC Linux >= 3.8
bug54583: support for PowerPC ABIv2
bug55303: ensure sigaction sa_flags match Linux behaviour
bug55565: OnloadRemoteMonitor API update. Change from struct_type to variable name & less verbose output for array of struct
bug56347: Avoid crash when creating VIs while VFs passed through to VM.
bug56799: simplify onload_tcpdump for multi-buffer packets
bug57017: ensure TCP RTT is calculated properly during connect()
bug57088: make lock implementation for EF_FDS_MT_SAFE=0 faster
bug57094: set recvmsg() msg_flags field correctly, e.g. when non-zero on entry
Bug57143: allow ef_vi users to request receive event merging
bug57772: fix race between fdtable_busy_clear / fdtable_busy_wait interlocking
bug57881: add HTTP server for Onload Remote Monitor
bug57881: add onload_version to orm_json output
bug57881: add option to request subset of data from Onload Remote Monitor
bug58224: allow onload_fd_stat to have 'stat' as NULL
bug58241: fix initial TCP window for loopback connections
Bug58251: fix handling of bitfields in remote monitor to avoid assertion on struct size
bug58274: make the set of errors that trigger RX_DISCARD events configurable
bug58441: avoid outputting errors on ENOSYS from MC_CMD_WORKAROUND.
bug58510: rate limit reset stack log messge
bug58547: decrease loglevel LOG_U->LOG_TR after unexpected TCP shutdown
bug58558: wake up TCP loopback peer socket from send_ack()
bug58694: fix setsockopt(SO_TIMEO) with active socket cache
bug58737: limit TCP send buffer by SO_SNDBUF*1.5 instead of *3
bug58850: disable LOG_DU (dump unexpected packets) by default
bug58981: avoid small memory leak in JNI FdStat function.
bug59349: use correct stackname after setting NOCHANGE stack and restoring
bug59442: add ability supply batch IPs/subnets to a map via an onload_fe command.
bug59506: add support for IPv6 filters in ef_vi
bug59609: efab_file_move_to_alien_stack() lock scheme improvement to fix race conditions
bug59639: fix return value for connect() when using scalable filters with socket caching and loopback.
bug59671: add MSG_ONEPKT flag to receive data up to a packet boundary
bug59702: fix filter manager replication/vlan capable flags after interface down/up cycle
bug59762: bug 59591: remove incorrect debug assertion when tcp socket starts to listen
bug59855: flush pending driverlink calls at hot-unplug to ensure they complete before removal.
Bug59875: fix NULL pointer deref after 'oo_nic_add: NOT registering ifindex (too many)' message
bug59879: make sigaction error message more verbose
bug59955: provide mechanism to query per-thread spin settings
bug60058: fix use-after-free slub debug warning in emergency-flush list.
bug60159: fix assertion in ci_netif_filter_insert when socket caching and loopback sockets used
bug60274: avoid hang while accepting socket via kernel using O_NONBLOCK.
bug60421: avoid printing warning if tty ioctls are used on onload epoll fd.
bug60471: bug 58248: defer stack destructor in more contexts where it can't run
bug60757: Add tools and options to debug time taken to add and remove filters
bug60783: Avoid performance degradation of WODA with large numbers of sockets.
bug60795: Avoid crash on stack allocation failure during NIC reset.
Bug60876: avoid process stuck in oo_timesync_wait_for_cpu_khz_to_stabilize
bug60916: fix kernel crash in efab_thr_release() if workqueue allocation failed
bug61083: Fix FD table locking hang.
bug61097: show POLLOUT event when non-blocking connect fails
bug61178: use a mutex in efsink to protect printing from different threads
Bug61218: avoid kernel panic unloading drivers after 'NOT registering ifindex (too many)' message
bug61255: don't do ci_sys_close under fdtable lock to avoid debug assertion and potential deadlock
bug61255: pass EMFILE to user if open() fails
bug61275: check for destroyed epoll set on socket handover to avoid segfault
bug61314: make driver robust, and warn, if new endpoint with filters present
Bug61373: Fix failure to update initramfs after onload_install
Bug61387: EF10 NICs do not support 4K TXQ sizes, so do not list them as supported
bug61721: avoid trying to free a PIO buffer if already unlinked due to NIC reset handling
bug61928: make return values for onload_delegated_send_* consistent when run with/without Onload
Bug62067,Bug50705: avoid eventq overflow warning when EF_TXQ_SIZE > 512 on Siena NICs
bug62370: correct free and used packet buffer counts in onload_stackdump
bug62377: set RSS context flags for MC_CMD_RSS_CONTEXT command correctly, avoids EINVAL MCDI error
Bug62453: licence JNI wrapper with BSD not GPL
bug62468: avoid -fstack-protector when executing library, fixes segfault on Ubuntu 16.04
bug62589: fix RPM spec file conflict with python-libs package
bug62720: Fix EALREADY on ef_vi EVQ-init with timestamps.
SF-116521-KI/bug63317: fix memory leak in ef_vi statistics API
openonload-201509-u1
--------------------
Update sfc net driver to version v4_5_1_1037
Update AOE driver to version v4_7_0_1033
task58695: Build on recent Linux kernels
task54288: Improve accuracy of hardware TX timestamps
task47708: Add option (EF_TCP_RCVBUF_MODE=1) to auto-tune receive buffer size per socket.
task57121: Improve delegated send sample code.
task58575: Improve PIO latency with frames whose size is not multiple of qword
task59096: Allow instance of VI within set or cluster to be specified
task59096: Allow efsink to run without specifying a stream
task52430: Experimental support for PowerPC little-endian.
task52430: Optimisations for Power8 systems.
task57340: Use symmetric RSS hash. Affects ef_vi, SolarCapture. See Release Notes
SF-115347-KI/bug57612: fix handling of fragmented unicast UDP with scalable filters mode
bug56596: add onload_stackdump counter syn_drop_no_return_route
bug56799: add wmb in oo_tcpdump_dump_pkt to avoid potential packet leak in onload_tcpdump
bug57106: handle failure to allocate a special RSS mode by falling back to default.
bug56948, bug57052: fixes EALREADY on EVQ_INIT when stressing stack creation
bug57119: add stack_locks_deferred counter to stackdump
bug56652: avoid endpoint wakeups from driverlink context on RT kernels
bug56919: allow reuse of socket from cache from different PID in some cases
bug42928: increment mm_hash->ref under write lock only, avoids "mmap del of NULL" warning
bug57017: correctly calculate initial TCP RTT during connect()
bug57407: avoid race on re-use of accelerated fd as non-accelerated.
bug53260: make Onload's behaviour for SO_LINGER more closely match Linux's
bug53525: improve messages for ef_vi MCDI TX/RX error events
bug57128: fix assertion in efab_tcp_helper_reuseport_bind() when interrupt driven
bug57683: make ef_pio_unlink_vi unmap the PIO region so PIO can be allocated again
bug57274: ensure unicast UDP packet is only delivered to a single socket
bug57728: correctly initialize citp_dup2_lock at start of day
bug57983: fix memory leak and handling of disappearing stack in WODA
bug58079: improve WODA latency scaling with large numbers of sockets in the set.
bug58086: don't segfault when delegated send API called with bad fd
bug57197: improve checking of arguments supplied to the ef_vi API (e.g. size of vi set)
bug58115: add kernel refcount values to stackdump output
bug58050: prevent EBUSY after repeatedly creating a stack with packet prefault
bug58217: fix rtnl lock assertions seen during bond failover in debug build
bug58217: Prevent flood of 'Not accelerating bond' messages.
bug57796: fix assertion in UDP debug build when poll is needed during epoll()
bug57631: correctly count keepalive probes when orphaning TCP socket to avoid assertion
bug58115: drop stack refcount if loop connection fails because of backlog to avoid zombie stack
bug58562: fix NULL deref and memory leak in error path in control plane initialisation
bug58580: avoid NULL deref if pkt allocation failed when replying to TCP SYN
bug58614: fix bad assertion in bonding debug build
bug57953: Avoid segfault when running with TX timestamping and SW multicast loopback
bug58295: Prevent packet remap errors on one NIC from stalling entire stack
bug58545: Prevent interrupt storm after packet remap failure
bug58643: Don't post packets to a NIC if we failed to remap them
bug58747: Avoid EALREADY on MCDI_CMD_FINI_(RX|TX|EV)Q after remap failure or hotplug
bug58709: Apply timestamp corrections to h/w timestamps reported by Onload
bug58622: Fix TX timestamp correction obtained from NIC. Was too small
bug58274: remove check which could falsely flag some non-IP packets as bad FCS
bug57740: fix filter confusion caused by hardware port down and up in single handler
bug58510: limit rate of some error messages to avoid overwhelming serial log
bug58753: purge btb_clear_mask field and all asserts with it
bug59103: Return informative errors when failing to allocate VI from set.
bug59103: Fix broken handling of VI set instance range check
bug58370: Avoid memory corruption at hotplug
bug59104: Avoid infinite loop on RHEL7.2 reading bonding sysfs files
bug58989: prevent Onload traffic reaching kernel stack on bond failover/hotplug
bug59149: reserve space for timesync events when rx hw timestamping to avoid evq overflow
bug53985: force TCP recv() to return 0 if properly shut down
bug59176: drop stack lock when spinning in write(pipe_fd, ...)
bug58558: fix sendfile() hang on realtime kernels
bug59265: fix race between reset and hotplug causing leak of TX/RX queues
bug59265: avoid MC assertions during repeated hotplug events
bug59206: don't warn about PIO alloc failure when hardware is absent
bug59277: fix CI_CFG_MAX_INTERFACES=1 + TCP loopback stack
bug57953: fix seg fault when TX timestamped packet also delivered via sw loopback
bug59573: bug55063: Fix onload_iptables rules on VLANs and bonds
bug59425: during hot unplug free VIs of stacks under construction/destruction
bug59345: allocate vi resources even for downed interfaces to improve bond behaviour
bug59362: fix flush timeouts after hotplug
bug55063: avoid naming collisions in /proc/driver/sfc_resource
bug58248: fix Ubuntu warning "sysfs: cannot create duplicate filename onload-wq"
bug55799: improve warning message about EF_TCP_SYNRECV_MAX
openonload-201509
-----------------
Add support for recent Linux versions including 4.1, 4.2
Update sfc net driver to version v4_5_1_1026 (see enclosed ReleaseNotes-sfc)
task8595: Implement ef_vi_set_free()
task50720: Add support for Stratus ftServer fault tolerant systems
task44377: Add --report to onload_iptables to show current rules.
task40201: Add onload_iptables --treat_as_outgoing to allow import of OUTPUT rules
task50968: Add support for new Linux teaming module
task47081: Add sample code to demonstrate VPORT switching
task48078: Stackdump details about which NUMA node interesting events occurred on.
task47505: Add EF_TCP_CONNECT_SPIN to control spinning in connect()
task50479: Recycle packet buffers in sets to avoid performance degrading over time
task52626: Add EF_TCP_SYNRECV_MAX to limit number of buffers used for TCP SYN RECV state connections
task50705: Add initial support for separate UDP receive queue
task53668: Add anonymise_stackdump.py tool
task53715: Add support for IP_TRANSPARENT socket option
task8595: Add epoll3 ready list id to socket information in stackdump
task51259: Scalable filter for active open
task53915: Add support for passively opened sockets using MAC filter.
task54521: Add TCP protocol to hardware rx timestamping sample.
task52052: Add mem_drop flag to TCP sockets in onload_stackdump to report memory drops
task53857: Add support for IP-proto and ethertype filters to ef_vi.
task51262: Active endpoint caching
task52071: Implement onload_get_tcp_info extension function
task52339: Implement Linux-style TX timestamping: SO_SELECT_ERR_QUEUE, SOF_TIMESTAMPING_OPT_ID
task47708: Add option to auto-tune TCP send buffer size per socket. Enable with EF_TCP_SNDBUF_MODE=2
task55965: add SOF_TIMESTAMPING_OPT_CMSG support.
task52339: Implement SOF_TIMESTAMPING_OPT_TSONLY (as found in linux>=4.0).
task56363: increase number of supported NIC ports from 6 to 8
task54288: Apply correction to TX timestamp to reflect latency to wire
SF-114668-KI/bug49989: honour NAPI budget when polling in a timer event, avoids "MCDI request was completed without an event"
bug51463: respect i_prefix install path when solar_clusterd built from srpm
bug51221: update onload_iptables to skip reject-with directive
bug45475: fix timestamping example code to build on older kernels
bug51741: improve sfcaffinity_config output to show core and channel mappings
bug50320: respect NAPI budget for Onload events, avoids "self-detected stall on CPU"
bug51932: do not be fussy about which CPU for interrupt if running out of VIs
bug50827: prevent socket joining multicast group if error adding filter
bug52236: remove the onload_set_recv_filter() functionality
bug50648: fix kernel crash during UDP socket handover
bug51146: fix deadlock between fdtable and epoll locks
bug53000: fix RST sending code match Linux behaviour (no ACK flag set)