==== Samba - History ====
-* 1992/01: start of the project
-* 1.5: 1993/12: (nbserver)
-* 1.9.16: 1996/05: CVS, Samba Team
-* 2.0: 1999/01: domain-member, +SWAT
-* 2.2: 2001/04: NT4-DC
-* 3.0: 2003/09: AD-member, Samba4 project started
-* 3.2: 2008/07: GPLv3, experimental clustering
-* 3.3: 2009/01: clustering [with CTDB]
-* 3.4: 2009/07: merged S3+S4 code
-* 3.5: _blue_2010_/03: _red_experimental SMB 2.0_
-* 3.6: _blue_2011_/09: _red_SMB 2.0_
-* 4.0: _blue_2012_/12: AD/DC, _red_SMB 2.0 durable handles, 2.1, 3.0_
-* 4.1: 2013/10: stability
-* 4.2: _blue_2015_/03: AD trusts, _red_SMB2.1 leases_, perf, include CTDB
-* 4.3: _blue_2015_/09: spotlight, new ChangeNotify, _red_SMB 3.0.2, 3.1.1_
-* 4.4: _blue_2016_/03: _red_Multi-Channel core_, ...
-
-
-==== SMB3 ====
+*<2-> 1992/01: start of the project
+*<2-> 1.5: 1993/12: (nbserver)
+*<2-> 1.9.16: 1996/05: CVS, Samba Team
+*<2-> 2.0: 1999/01: domain-member, +SWAT
+*<2-> 2.2: 2001/04: NT4-DC
+*<2-> 3.0: 2003/09: AD-member, Samba4 project started
+*<2-> 3.2: 2008/07: GPLv3, experimental clustering
+*<2-> 3.3: 2009/01: clustering [with CTDB]
+*<2-> 3.4: 2009/07: merged S3+S4 code
+*<2-> 3.5: _blue_2010_/03: _blue_experimental SMB 2.0_
+*<2-> 3.6: _blue_2011_/09: _blue_SMB 2.0_
+*<2-> 4.0: _blue_2012_/12: AD/DC, _blue_SMB 2.0 durable handles, 2.1, 3.0_
+*<2-> 4.1: 2013/10: stability
+*<2-> 4.2: _blue_2015_/03: AD trusts, _blue_SMB2.1 leases_, perf, include CTDB
+*<2-> 4.3: _blue_2015_/09: spotlight, new ChangeNotify, _blue_SMB 3.0.2, 3.1.1_
+*<3-> 4.4: _red_2016_/03: _red_SMB3 Multi-Channel (experimental)_, ...
+==== ====[plain]
+
+<[center]
+\Large
+Apologies to our friends from Microsoft for writing "Multi-Channel"...
+[center]>
+
+==== ====[plain]
+
+<[center]
+\Large
+How can we partly implement an SMB version?
+[center]>
+
+
+==== SMB2 Capabilities - Negotiate ====
+
+* SMB2\_CAP\_DFS (3.5, 3.6)
+* SMB2\_CAP\_LEASING (4.2)
+* SMB2\_CAP\_LARGE\_MTU (4.0)
+* \textcolor{blue}{SMB2\_CAP\_MULTI\_CHANNEL} (4.4)
+* \textcolor{red}{SMB2\_CAP\_PERSISTENT\_HANDLES}
+* \textcolor{red}{SMB2\_CAP\_DIRECTORY\_LEASING}
+* SMB2\_CAP\_ENCRYPTION (4.0)
+
+==== Other 'optional' SMB2 features ====
+
+* Some create contexts - ok to ignore, e.g.:
+** durable handles (best-effort concept)
+* fsctl/ioctls - ok (?) to return errors, e.g.:
+** FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO
+** FSCTL\_LMR\_REQ\_RESILIENCY
+
+==== ====[plain]
+
+<[center]
+\Large
+So what's the big deal about SMB3?
+[center]>
+
+
+==== SMB3 - what's the big deal? ====
+
++<2->{
<[block]{SMB3 (2012) introduced SMB clustering:}
-* Clustering - Witness
-* Continuous Availability - Persistent Handles
-* Scale Out
+* Clustering - Witness (HA / faster fail-over)
+* Continuous Availability - Persistent Handles (guarantees!)
+* Scale Out (all-active access)
[block]>
+}
++<3->{
<[block]{Additionally:}
* Transport encryption
* Multi-Channel
* RDMA transport (SMB Direct)
[block]>
+}
++<4->{
+<[block]{from workstation to server workload}
+* databases (sql...)
+* virtualtization (hyper-v)
+* ...
+[block]>
+}
==== SMB Features - in Samba ====
* SMB 3.1.1:
** negotiate contexts, preauth: [4.3]
-==== SMB2 capabilities ====
-
-* @SMB2\_CAP\_DFS@
-* @SMB2\_CAP\_LEASING@
-* @SMB2\_CAP\_LARGE\_MTU@
-* @SMB2\_CAP\_MULTI\_CHANNEL@
-* @SMB2\_CAP\_PERSISTENT\_HANDLES@
-* @SMB2\_CAP\_DIRECTORY\_LEASING@
-* @SMB2\_CAP\_ENCRYPTION@
-
[frame]>