LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-22-2018, 11:41 AM   #16
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512

brobr --

This link "straight from the horse's mouth" might be helpful: SMB3 kernel status

-- kjh
 
Old 07-27-2018, 08:19 PM   #17
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Woo Hoo !

A HUGE and GENERIC Thank You to Pat and the team for turning on CONFIG_CIFS_SMB2 ( and other options ).

Will rerun my Win7u Tests and I've also got Win10 going now ( it does work with 4.14.56 with vers=3.02 ... )

More testing coming right up !

Thanks again !

-- kjh

From today's Slackware64 14.2 ChangeLog:
Code:
Fri Jul 27 21:01:22 UTC 2018
patches/packages/linux-4.4.144/*:  Upgraded.
  This kernel update enables additional mitigations for spectre_v2 (IBPB and
  IBRS_FW). It also enables reporting on the Speculative Store Bypass
  vulnerability (aka GPZ Variant 4) which affects Intel processors and must
  be patched with a microcode update.
  To see the status of CPU vulnerability mitigations on your system, look at
  the files in: /sys/devices/system/cpu/vulnerabilities
  In addition, these kernels enable SMB2. Here's the complete list of kernel
  config changes from the previous 4.4.132:
    -X86_DEBUG_STATIC_CPU_HAS n
     CIFS_SMB2 n -> y
    +CC_OPTIMIZE_FOR_PERFORMANCE y
    +CIFS_SMB311 n
    +X86_FAST_FEATURE_TESTS y

<<snip>>
 
1 members found this post helpful.
Old 07-28-2018, 06:38 AM   #18
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
All --

This is Slackware64 14.2 + Multilib with the Latest Slackware 4.4.144 Kernel.
Code:
# uname -a 

Linux kjhlt6 4.4.144 #1 SMP Thu Jul 26 12:26:39 CDT 2018 x86_64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz GenuineIntel GNU/Linux
As I showed in a previous post, I turned off SMB1 in the Registry by adding a new Key on my win7u VMWare Machine:
Code:
Key Name:          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters\SMB1
Value:             0x0
The punchline for a Slackware 14.2 Client and a Windows 7 Ultimate Server ( Pro+ ) is:
Code:
# SMB vers| RetCode  | mount.cifs sez          | dmesg sez:
  1.0     | 112      | Host is down            | cifs_mount failed w/return code = -112
  2.0     |   0      | nothing ( SUCCESS )     | nothing
  2.1     |   0      | nothing ( SUCCESS )     | nothing
  3.0     |  95      | Operation not supported | cifs_mount failed w/return code = -95
  3.02    |  95      | Operation not supported | cifs_mount failed w/return code = -95
  3.11    |  22      | Invalid argument        | Unknown vers= option specified: 3.11
As expected, the highest SMB vers=2.1 and the lowest is vers=2.0 for Windows 7.

Below is the output for the SMB Version Compatibility mount-test

Next Up: The same tests for this Slackware64 14.2 Client and a Windows 10 Professional Server ...

-- kjh

The Command I ran:
Code:
# for i in 1.0   2.0   2.1   3.0   3.02   3.11
do 
   mount-win7u $i ; r=$?

  [ "$r" = "0" ] && echo -e "\n`df /mnt/win7u`"  && umount /mnt/win7u

  echo -e "\n# RetCode = $r"
  echo -e "\ndmesg -Tw said:  \n"

done
output here:
Code:
# ---------------------------------------------
# invoking mount.cifs with option vers=1.0 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=1.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 05:43:34 2018] CIFS VFS: cifs_mount failed w/return code = -112


# ---------------------------------------------
# invoking mount.cifs with option vers=2.0 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=2.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********

Filesystem         1K-blocks      Used Available Use% Mounted on
//172.16.162.137/c 157283324 122216600  35066724  78% /mnt/win7u

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=2.1 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=2.1,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********

Filesystem         1K-blocks      Used Available Use% Mounted on
//172.16.162.137/c 157283324 122216600  35066724  78% /mnt/win7u

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=3.0 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=3.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 05:43:34 2018] CIFS VFS: cifs_mount failed w/return code = -95


# ---------------------------------------------
# invoking mount.cifs with option vers=3.02 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=3.02,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 05:43:34 2018] CIFS VFS: cifs_mount failed w/return code = -95


# ---------------------------------------------
# invoking mount.cifs with option vers=3.11 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=3.11,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 05:43:34 2018] CIFS VFS: Unknown vers= option specified: 3.11
For the record, this is the latest /root/bin/mount-win7u wrapper script
Code:
#!/bin/sh
#
Testing=1                        # verbose ...

IPAddr="172.16.162.137"
Share="//${IPAddr}/c"
MtPt="/mnt/win7u"

Version="2.1"                    # Max SMB Version for Windows 7 is 2.1

[ $# -gt 0 ] && Version="$1" && shift

VOpt=""

if [ "$Testing" = "1" ]
then
   VOpt="-v"

   echo ""                                                       >&2
   echo "# ---------------------------------------------"        >&2
   echo "# invoking mount.cifs with option vers=$Version ..."    >&2
   echo "# ---------------------------------------------"        >&2
   echo ""                                                       >&2

fi

mount $VOpt -t cifs $Share $MtPt -o "rw,uid=root,vers=${Version},forceuid,dir_mode=0777,file_mode=0666,noserverino,credentials=/root/.smbcred,ip=$IPAddr"
exit $?
 
Old 07-28-2018, 06:48 AM   #19
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
These are the same tests with my Slackware64 14.2 Client and a Windows 10 Pro Server

Code:
# SMB vers| RetCode  | mount.cifs sez          | dmesg sez:
  1.0     | 112      | Host is down            | cifs_mount failed w/return code = -112
  2.0     |   0      | nothing ( SUCCESS )     | nothing
  2.1     |   0      | nothing ( SUCCESS )     | nothing
  3.0     |   0      | nothing ( SUCCESS )     | nothing
  3.02    |   0      | nothing ( SUCCESS )     | nothing
  3.11    |  22      | Invalid argument        | Unknown vers= option specified: 3.11
As expected, the highest SMB vers=3.02 and the lowest is vers=2.0 for Windows 10 Pro.

Below is the output for the SMB Version Compatibility mount-test

Next Up: File Copy from win7u to Slackware64 14.2 ... this takes a while for the large file I am testing with ...

-- kjh

Code:
# ---------------------------------------------
# invoking mount.cifs with option vers=1.0 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=1.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 06:37:30 2018] CIFS VFS: cifs_mount failed w/return code = -112


# ---------------------------------------------
# invoking mount.cifs with option vers=2.0 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=2.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********

Filesystem         1K-blocks     Used Available Use% Mounted on
//172.16.162.139/c 104293372 11225024  93068348  11% /mnt/win10

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=2.1 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=2.1,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********

Filesystem         1K-blocks     Used Available Use% Mounted on
//172.16.162.139/c 104293372 11225024  93068348  11% /mnt/win10

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=3.0 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=3.0,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********

Filesystem         1K-blocks     Used Available Use% Mounted on
//172.16.162.139/c 104293372 11225024  93068348  11% /mnt/win10

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=3.02 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=3.02,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********

Filesystem         1K-blocks     Used Available Use% Mounted on
//172.16.162.139/c 104293372 11225024  93068348  11% /mnt/win10

# RetCode = 0

dmesg -Tw said:  <<nothing>>


# ---------------------------------------------
# invoking mount.cifs with option vers=3.11 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=3.11,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=konrad,,domain=workgroup,pass=********
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

# RetCode = 32

dmesg -Tw said:  [Sat Jul 28 06:37:30 2018] CIFS VFS: Unknown vers= option specified: 3.11
 
Old 07-28-2018, 07:46 AM   #20
brobr
Member
 
Registered: Oct 2003
Location: uk
Distribution: Slackware
Posts: 974

Rep: Reputation: 238Reputation: 238Reputation: 238
The next kernel64-upgrade (4.14.59) appears to address the cifs-dialect issue discussed above for 4.14.kernels:
Quote:
commit 4168a84223646130203c7b566c27f9a74abef7ea
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Thu Jul 26 12:19:48 2018 +0200

Revert "cifs: Fix slab-out-of-bounds in send_set_info() on SMB2 ACE setting"

This reverts commit 748144f35514aef14c4fdef5bcaa0db99cb9367a which is
commit f46ecbd97f508e68a7806291a139499794874f3d upstream.

Philip reports:
seems adding "cifs: Fix slab-out-of-bounds in send_set_info() on SMB2
ACE setting" (commit 748144f) [1] created a regression within linux
v4.14 kernel series. Writing to a mounted cifs either freezes on writing
or crashes the PC. A more detailed explanation you may find in our
forums [2]. Reverting the patch, seems to "fix" it. Thoughts?

[2] https://forum.manjaro.org/t/53250
.
 
2 members found this post helpful.
Old 07-28-2018, 09:17 AM   #21
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
This is a ( Slackware64 14.2 + Linux 4.4.144 ) Client + win7u Server READ ONLY Test ( still no space for a proper READ-WRITE test )

It works fine for me ... I get an identical copy of the win7u file on my Slackware64 14.2 HDD ...

-- kjh

1. Mount the Share as root:
Code:
# mount-win7u

# ---------------------------------------------
# invoking mount.cifs with option vers=2.1 ...
# ---------------------------------------------

ip address 172.16.162.137 override specified
mount.cifs kernel mount options: ip=172.16.162.137,unc=\\172.16.162.137\c,vers=2.1,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=0,user=uuuuuuuu,pass=********
2. Read my Outlook .ost file as 'me' ( using the dd-pipe so I have something to watch while 48GB is moved )
Code:
$ df -H /mnt/win7u

Filesystem          Size  Used Avail Use% Mounted on
//172.16.162.137/c  162G  126G   36G  78% /mnt/win7u

$ ls -la '/mnt/win7u/Users/UserName/AppData/local/Microsoft/Outlook/UserName@example.com.ost'
-rw-rw-rw- 1 root root 48013452288 Jul 28 06:57 /mnt/win7u//Users/UserName/AppData/local/Microsoft/Outlook/UserName@example.com.ost

$ cat '/mnt/win7u/Users/UserName/AppData/local/Microsoft/Outlook/UserName\@example.com.ost' |dd bs=1M status=progress of=foo-file.ost
47894626304 bytes (48 GB, 45 GiB) copied, 471.008 s, 102 MB/s  
1+339154 records in
1+339154 records out
48013452288 bytes (48 GB, 45 GiB) copied, 471.969 s, 102 MB/s

$ cat '/mnt/win7u/Users/UserName/AppData/local/Microsoft/Outlook/UserName@example.com.ost' |dd bs=1M status=progress |md5sum -
47917694976 bytes (48 GB, 45 GiB) copied, 408 s, 117 MB/s     
0+341992 records in
0+341992 records out
48013452288 bytes (48 GB, 45 GiB) copied, 408.809 s, 117 MB/s
715d5e2af1a36525c784f2df60d3ffd0  -

$ md5sum foo-file.ost
715d5e2af1a36525c784f2df60d3ffd0  foo-file.ost
 
Old 07-28-2018, 09:23 AM   #22
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
And this is the same ( Slackware64 14.2 + Linux 4.4.144 ) Client and the win10 Server ( vers=3.02 ) ...

Again, it works fine ( this time using rsync ).

--kjh

Mount the Share ...

Code:
# mount-win10

# ---------------------------------------------
# invoking mount.cifs with option vers=3.02 ...
# ---------------------------------------------

domain=workgroup
ip address 172.16.162.139 override specified
mount.cifs kernel mount options: ip=172.16.162.139,unc=\\172.16.162.139\c,vers=3.02,forceuid,dir_mode=0777,file_mode=0666,noserverino,uid=1000,gid=100,user=uuuuuuuu,,domain=workgroup,pass=********
Copy the Data from the win7u test Back-n-Forth from Slackware to win10 ....
Code:
$ ls -la /home/konrad/win7u/foo-file.ost /mnt/win10/Temp/foo-file.ost 2>/dev/null
-rw-rw-r-- 1 konrad users 48013452288 Jul 28 07:22 /home/konrad/win7u/foo-file.ost


$ [ -f /mnt/win10/Temp/foo-file.ost ] && rm -v /mnt/win10/Temp/foo-file.ost


$ rsync -PavH /home/konrad/win7u/foo-file.ost /mnt/win10/Temp
sending incremental file list
foo-file.ost
 48,013,452,288 100%  269.13MB/s    0:02:50 (xfr#1, to-chk=0/1)

sent 48,025,174,430 bytes  received 35 bytes  231,446,623.93 bytes/sec
total size is 48,013,452,288  speedup is 1.00


$ cat /mnt/win10/Temp/foo-file.ost |dd bs=1M status=progress |md5sum -
47853731840 bytes (48 GB, 45 GiB) copied, 154 s, 311 MB/s     
1+349514 records in
1+349514 records out
48013452288 bytes (48 GB, 45 GiB) copied, 154.521 s, 311 MB/s
715d5e2af1a36525c784f2df60d3ffd0  -


$ cat /home/konrad/win7u/foo-file.ost |dd bs=1M status=progress |md5sum -
47648866304 bytes (48 GB, 44 GiB) copied, 77.0002 s, 619 MB/s 
0+364781 records in
0+364781 records out
48013452288 bytes (48 GB, 45 GiB) copied, 77.6509 s, 618 MB/s
715d5e2af1a36525c784f2df60d3ffd0  -


$ ls -la /home/konrad/win7u/foo-file.ost /mnt/win10/Temp/foo-file.ost
-rw-rw-r-- 1 konrad users 48013452288 Jul 28 07:22 /home/konrad/win7u/foo-file.ost
-rw-rw-rw- 1 konrad users 48013452288 Jul 28 07:22 /mnt/win10/Temp/foo-file.ost


$ mv /home/konrad/win7u/foo-file.ost /home/konrad/win7u/bar-file.ost


$ rsync -PavH /mnt/win10/Temp/foo-file.ost .
sending incremental file list
foo-file.ost
 48,013,452,288 100%  176.64MB/s    0:04:19 (xfr#1, to-chk=0/1)

sent 48,025,174,430 bytes  received 35 bytes  185,068,109.69 bytes/sec
total size is 48,013,452,288  speedup is 1.00


$ ls -la foo-file.ost bar-file.ost
-rw-rw-r-- 1 konrad users 48013452288 Jul 28 07:22 bar-file.ost
-rw-rw-rw- 1 konrad users 48013452288 Jul 28 07:22 foo-file.ost


$ cat /home/konrad/win7u/foo-file.ost |dd bs=1M status=progress |md5sum -
7986900992 bytes (48 GB, 45 GiB) copied, 86.0001 s, 558 MB/s 
0+364644 records in
0+364644 records out
48013452288 bytes (48 GB, 45 GiB) copied, 86.0473 s, 558 MB/s
715d5e2af1a36525c784f2df60d3ffd0  -

$ rm /mnt/win10/Temp/foo-file.ost
 
Old 07-28-2018, 09:24 AM   #23
kjhambrick
Senior Member
 
Registered: Jul 2005
Location: Round Rock, TX
Distribution: Slackware64 15.0 + Multilib
Posts: 2,159

Original Poster
Rep: Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512Reputation: 1512
Quote:
Originally Posted by brobr View Post
The next kernel64-upgrade (4.14.59) appears to address the cifs-dialect issue discussed above for 4.14.kernels:
.
Outstanding brobr !

Thank you for the info.

-- kjh
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Cannot install d-link DWA-140 NIC on Oracle Linux 6.3 mythbuster Linux - Hardware 0 12-30-2012 10:44 PM
I have 140 U.S. Dollars. What should I get? lupusarcanus General 15 12-27-2009 10:07 PM
LXer: Linux Gazette #140 is out! LXer Syndicated Linux News 0 07-02-2007 01:16 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:22 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration