examples/qat: update
authorIntel <intel.com>
Wed, 19 Dec 2012 23:00:00 +0000 (00:00 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 25 Jul 2013 13:57:54 +0000 (15:57 +0200)
Signed-off-by: Intel
examples/dpdk_qat/Makefile
examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev0.conf
examples/dpdk_qat/config_files/shumway/dh89xxcc_qa_dev1.conf
examples/dpdk_qat/config_files/stargo/dh89xxcc_qa_dev0.conf
examples/dpdk_qat/crypto.c
examples/dpdk_qat/crypto.h
examples/dpdk_qat/main.c

index 58fbbdd..70fa2e2 100644 (file)
@@ -48,9 +48,13 @@ $(error This application can only operate in a linuxapp environment, \
 please change the definition of the RTE_TARGET environment variable)
 endif
 
+LBITS := $(shell uname -p)
 ifneq ($(CONFIG_RTE_ARCH),"x86_64")
-$(error This application can only operate in a x86_64 environment, \
-please change the definition of the RTE_TARGET environment variable)
+        ifneq ($(LBITS),i686)
+        $(error The RTE_TARGET chosen is not compatible with this environment \
+        (x86_64), for this application. Please change the definition of the \
+        RTE_TARGET environment variable, or run the application on a 32-bit OS)
+        endif
 endif
 
 # binary name
@@ -67,6 +71,7 @@ CFLAGS += -I$(ICP_ROOT)/quickassist/include \
 
 LDLIBS += -L$(ICP_ROOT)/build
 LDLIBS += $(ICP_ROOT)/build/icp_qa_al.a \
+               -lz \
                -losal \
                -ladf_proxy \
                -lcrypto
index 4773f7b..2804fe3 100644 (file)
@@ -32,8 +32,8 @@
 #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 # 
-#########################################################################
-########################################################
+# #########################################################################
+# ########################################################
 #
 # This file is the configuration for a single dh89xxcc_qa
 # device.
 #   specific core.
 # Each ring bank as 16 rings (hardware assisted queues).
 #
-########################################################
-
-##############################################
+#########################################################
 # General Section
 ##############################################
 
 [GENERAL]
 ServicesEnabled = cy0;cy1
 
+# Use version 2 of the config file
+ConfigVersion = 2
 # Look Aside Cryptographic Configuration
 cyHmacAuthMode = 1
 
 # Look Aside Compression Configuration
 dcTotalSRAMAvailable = 0
-dcSRAMPerInstance = 0
 
 # Firmware Location Configuration
-Firmware_UofPath = uof_firmware.bin
+Firmware_MofPath = mof_firmware.bin
 Firmware_MmpPath = mmp_firmware.bin
 
-# QAT Parameters
-Accel0AdminBankNumber = 0
-Accel0AcceleratorNumber = 0
-Accel0AdminTx = 0
-Accel0AdminRx = 1
-
-Accel1AcceleratorNumber = 1
-Accel1AdminBankNumber = 0
-Accel1AdminTx = 0
-Accel1AdminRx = 1
+#Default values for number of concurrent requests*/
+CyNumConcurrentSymRequests = 512
+CyNumConcurrentAsymRequests = 64
+DcNumConcurrentRequests = 512
 
 #Statistics, valid values: 1,0
 statsGeneral = 1
@@ -90,103 +83,16 @@ statsPrime = 1
 statsRsa = 1
 statsSym = 1
 
+# Enables or disables Single Root Complex IO Virtualization.
+# If this is enabled (1) then SRIOV and VT-d need to be enabled in
+# BIOS and there can be no Cy or Dc instances created in PF (Dom0).
+# If this i disabled (0) then SRIOV and VT-d need to be disabled
+# in BIOS and Cy and/or Dc instances can be used in PF (Dom0)
+SRIOV_Enabled = 0
+
 #Debug feature, if set to 1 it enables additional entries in /proc filesystem
 ProcDebug = 1
 
-
-################################################
-#
-# Hardware Access Ring Bank Configuration
-# Each Accelerator has 8 ring banks (0-7)
-# If the OS supports MSI-X, each ring bank has an
-# steerable MSI-x interrupt which may be
-# affinitized to a particular node/core.
-#
-################################################
-
-
-[Accelerator0]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 0
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 2
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 4
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 6
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 16
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 18
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 20
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 22
-Bank7InterruptCoalescingNumResponses = 0
-
-[Accelerator1]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 1
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 3
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 5
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 7
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 17
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 19
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 21
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 23
-Bank7InterruptCoalescingNumResponses = 0
-
 #######################################################
 #
 # Logical Instances Section
@@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0
 #   the user mode process.
 #   To allow the driver correctly configure the
 #   logical instances associated with this user process,
-#   the process must call the icp_sal_userStart(...)
+#   the process must call the icp_sal_userStartMultiProcess(...)
 #   passing the xxxxx string during process initialisation.
-#   When the user space process is finish it must call
+#   When the user space process is finished it must call
 #   icp_sal_userStop(...) to free resources.
-#   If there are multiple devices present in the system all conf
-#   files that describe the devices must have the same address domain
-#   sections even if the address domain does not configure any instances
-#   on that particular device. So if icp_sal_userStart("xxxxx") is called
-#   then user process address domain [xxxxx] needs to be present in all
-#   conf files for all devices in the system.
+#   NumProcesses will indicate the maximum number of processes
+#   that can call icp_sal_userStartMultiProcess on this instance.
+#   Warning: the resources are preallocated: if NumProcesses
+#   is too high, the driver will fail to load
 #
 # Items configurable by a logical instance are:
 # - Name of the logical instance
 # - The accelerator associated with this logical
 #   instance
-# - The ring bank associated with this logical
-#   instance.
-# - The response mode associated wth this logical instance (0
-#   for IRQ or 1 for polled).
-# - The ring for receiving and the ring for transmitting.
-# - The number of concurrent requests supported by a pair of
-#   rings on this instance (tx + rx). Note this number affects
-#   the amount of memory allocated by the driver. Also
-#   Bank<n>InterruptCoalescingNumResponses is only supported for
-#   number of concurrent requests equal to 512.
+# - The core the instance is affinitized to (optional)
 #
 # Note: Logical instances may not share the same ring, but
 #           may share a ring bank.
@@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0
 # The format of the logical instances are:
 # - For crypto:
 #               Cy<n>Name = "xxxx"
-#               Cy<n>AcceleratorNumber = 0|1
-#               Cy<n>BankNumber = 0-7
-#               Cy<n>IsPolled = 0|1
-#               Cy<n>NumConcurrentSymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>NumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>RingAsymTx = 0-15
-#               Cy<n>RingAsymRx = 0-15
-#               Cy<n>RingSymTxHi = 0-15
-#               Cy<n>RingSymRxHi = 0-15
-#               Cy<n>RingSymRx = 0-15
+#               Cy<n>AcceleratorNumber = 0-3
+#               Cy<n>CoreAffinity = 0-7
 #
 # - For Data Compression
 #               Dc<n>Name = "xxxx"
-#               Dc<n>AcceleratorNumber = 0|1
-#               Dc<n>BankNumber = 0-7
-#               Dc<n>IsPolled = 0|1
-#               Dc<n>NumConcurrentRequests = 64|128|256|512|1024|2048|4096
-#               Dc<n>RingTx = 0-15
-#               Dc<n>RingRx = 0-15
+#               Dc<n>AcceleratorNumber = 0-1
+#               Dc<n>CoreAffinity = 0-7
 #
 # Where:
 #       - n is the number of this logical instance starting at 0.
 #       - xxxx may be any ascii value which identifies the logical instance.
 #
+# Note: for user space processes, a list of values can be specified for
+# the accelerator number and the core affinity: for example
+#              Cy0AcceleratorNumber = 0,2
+#              Cy0CoreAffinity = 0,2,4
+# These comma-separated lists will allow the multiple processes to use
+# different accelerators and cores, and will wrap around the numbers
+# in the list. In the above example, process 0 will use accelerator 0,
+# and process 1 will use accelerator 2
+#
 ########################################################
 
 ##############################################
@@ -270,267 +162,135 @@ Bank7InterruptCoalescingNumResponses = 0
 NumberCyInstances = 0
 NumberDcInstances = 0
 
-
 ##############################################
 # User Process Instance Section
 ##############################################
 [SSL]
 NumberCyInstances = 16
 NumberDcInstances = 0
+NumProcesses = 1
+LimitDevAccess = 0
 
 # Crypto - User instance #0
 Cy0Name = "SSL0"
 Cy0IsPolled = 1
 Cy0AcceleratorNumber = 0
-Cy0ExecutionEngine = 0
-Cy0BankNumber = 0
-Cy0NumConcurrentSymRequests = 512
-Cy0NumConcurrentAsymRequests = 64
-
-Cy0RingAsymTx =  2
-Cy0RingAsymRx =  3
-Cy0RingSymTxHi = 4
-Cy0RingSymRxHi = 5
-Cy0RingSymTxLo = 6
-Cy0RingSymRxLo = 7
+# List of core affinities
+Cy0CoreAffinity = 0
 
 # Crypto - User instance #1
 Cy1Name = "SSL1"
-Cy1AcceleratorNumber = 1
-Cy1ExecutionEngine = 0
-Cy1BankNumber = 0
 Cy1IsPolled = 1
-Cy1NumConcurrentSymRequests = 512
-Cy1NumConcurrentAsymRequests = 64
-
-Cy1RingAsymTx =  2
-Cy1RingAsymRx =  3
-Cy1RingSymTxHi = 4
-Cy1RingSymRxHi = 5
-Cy1RingSymTxLo = 6
-Cy1RingSymRxLo = 7
+Cy1AcceleratorNumber = 1
+# List of core affinities
+Cy1CoreAffinity = 1
 
 # Crypto - User instance #2
 Cy2Name = "SSL2"
-Cy2IsPolled= 1
-Cy2AcceleratorNumber = 0
-Cy2ExecutionEngine = 1
-Cy2BankNumber = 1
-Cy2NumConcurrentSymRequests = 512
-Cy2NumConcurrentAsymRequests = 64
-
-Cy2RingAsymTx =  0
-Cy2RingAsymRx =  1
-Cy2RingSymTxHi = 2
-Cy2RingSymRxHi = 3
-Cy2RingSymTxLo = 4
-Cy2RingSymRxLo = 5
+Cy2IsPolled = 1
+Cy2AcceleratorNumber = 2
+# List of core affinities
+Cy2CoreAffinity = 2
 
 # Crypto - User instance #3
 Cy3Name = "SSL3"
-Cy3AcceleratorNumber = 1
-Cy3ExecutionEngine = 1
-Cy3BankNumber = 1
 Cy3IsPolled = 1
-Cy3NumConcurrentSymRequests = 512
-Cy3NumConcurrentAsymRequests = 64
-
-Cy3RingAsymTx =  0
-Cy3RingAsymRx =  1
-Cy3RingSymTxHi = 2
-Cy3RingSymRxHi = 3
-Cy3RingSymTxLo = 4
-Cy3RingSymRxLo = 5
-
+Cy3AcceleratorNumber = 3
+# List of core affinities
+Cy3CoreAffinity = 3
 
 # Crypto - User instance #4
 Cy4Name = "SSL4"
-Cy4IsPolled= 1
+Cy4IsPolled = 1
 Cy4AcceleratorNumber = 0
-Cy4ExecutionEngine = 0
-Cy4BankNumber = 2
-Cy4NumConcurrentSymRequests = 512
-Cy4NumConcurrentAsymRequests = 64
-
-Cy4RingAsymTx =  0
-Cy4RingAsymRx =  1
-Cy4RingSymTxHi = 2
-Cy4RingSymRxHi = 3
-Cy4RingSymTxLo = 4
-Cy4RingSymRxLo = 5
+# List of core affinities
+Cy4CoreAffinity = 4
 
 # Crypto - User instance #5
 Cy5Name = "SSL5"
-Cy5AcceleratorNumber = 1
-Cy5ExecutionEngine = 0
-Cy5BankNumber = 2
 Cy5IsPolled = 1
-Cy5NumConcurrentSymRequests = 512
-Cy5NumConcurrentAsymRequests = 64
-
-Cy5RingAsymTx =  0
-Cy5RingAsymRx =  1
-Cy5RingSymTxHi = 2
-Cy5RingSymRxHi = 3
-Cy5RingSymTxLo = 4
-Cy5RingSymRxLo = 5
+Cy5AcceleratorNumber = 1
+# List of core affinities
+Cy5CoreAffinity = 5
 
 # Crypto - User instance #6
 Cy6Name = "SSL6"
 Cy6IsPolled = 1
-Cy6AcceleratorNumber = 0
-Cy6ExecutionEngine = 1
-Cy6BankNumber = 3
-Cy6NumConcurrentSymRequests = 512
-Cy6NumConcurrentAsymRequests = 64
-
-Cy6RingAsymTx =  0
-Cy6RingAsymRx =  1
-Cy6RingSymTxHi = 2
-Cy6RingSymRxHi = 3
-Cy6RingSymTxLo = 4
-Cy6RingSymRxLo = 5
+Cy6AcceleratorNumber = 2
+# List of core affinities
+Cy6CoreAffinity = 6
 
 # Crypto - User instance #7
 Cy7Name = "SSL7"
-Cy7AcceleratorNumber = 1
-Cy7ExecutionEngine = 1
-Cy7BankNumber = 3
 Cy7IsPolled = 1
-Cy7NumConcurrentSymRequests = 512
-Cy7NumConcurrentAsymRequests = 64
-
-Cy7RingAsymTx =  0
-Cy7RingAsymRx =  1
-Cy7RingSymTxHi = 2
-Cy7RingSymRxHi = 3
-Cy7RingSymTxLo = 4
-Cy7RingSymRxLo = 5
+Cy7AcceleratorNumber = 3
+# List of core affinities
+Cy7CoreAffinity = 7
 
 # Crypto - User instance #8
 Cy8Name = "SSL8"
 Cy8IsPolled = 1
 Cy8AcceleratorNumber = 0
-Cy8ExecutionEngine = 0
-Cy8BankNumber = 4
-Cy8NumConcurrentSymRequests = 512
-Cy8NumConcurrentAsymRequests = 64
-
-Cy8RingAsymTx =  0
-Cy8RingAsymRx =  1
-Cy8RingSymTxHi = 2
-Cy8RingSymRxHi = 3
-Cy8RingSymTxLo = 4
-Cy8RingSymRxLo = 5
+# List of core affinities
+Cy8CoreAffinity = 16
 
 # Crypto - User instance #9
 Cy9Name = "SSL9"
 Cy9IsPolled = 1
 Cy9AcceleratorNumber = 1
-Cy9ExecutionEngine = 0
-Cy9BankNumber = 4
-Cy9NumConcurrentSymRequests = 512
-Cy9NumConcurrentAsymRequests = 64
-
-Cy9RingAsymTx =  0
-Cy9RingAsymRx =  1
-Cy9RingSymTxHi = 2
-Cy9RingSymRxHi = 3
-Cy9RingSymTxLo = 4
-Cy9RingSymRxLo = 5
+# List of core affinities
+Cy9CoreAffinity = 17
 
 # Crypto - User instance #10
 Cy10Name = "SSL10"
 Cy10IsPolled = 1
-Cy10AcceleratorNumber = 0
-Cy10ExecutionEngine = 1
-Cy10BankNumber = 5
-Cy10NumConcurrentSymRequests = 512
-Cy10NumConcurrentAsymRequests = 64
-
-Cy10RingAsymTx =  0
-Cy10RingAsymRx =  1
-Cy10RingSymTxHi = 2
-Cy10RingSymRxHi = 3
-Cy10RingSymTxLo = 4
-Cy10RingSymRxLo = 5
+Cy10AcceleratorNumber = 2
+# List of core affinities
+Cy10CoreAffinity = 18
 
 # Crypto - User instance #11
 Cy11Name = "SSL11"
 Cy11IsPolled = 1
-Cy11AcceleratorNumber = 1
-Cy11ExecutionEngine = 1
-Cy11BankNumber = 5
-Cy11NumConcurrentSymRequests = 512
-Cy11NumConcurrentAsymRequests = 64
-
-Cy11RingAsymTx =  0
-Cy11RingAsymRx =  1
-Cy11RingSymTxHi = 2
-Cy11RingSymRxHi = 3
-Cy11RingSymTxLo = 4
-Cy11RingSymRxLo = 5
+Cy11AcceleratorNumber = 3
+# List of core affinities
+Cy11CoreAffinity = 19
 
 # Crypto - User instance #12
 Cy12Name = "SSL12"
 Cy12IsPolled = 1
 Cy12AcceleratorNumber = 0
-Cy12ExecutionEngine = 0
-Cy12BankNumber = 6
-Cy12NumConcurrentSymRequests = 512
-Cy12NumConcurrentAsymRequests = 64
-
-Cy12RingAsymTx =  0
-Cy12RingAsymRx =  1
-Cy12RingSymTxHi = 2
-Cy12RingSymRxHi = 3
-Cy12RingSymTxLo = 4
-Cy12RingSymRxLo = 5
+# List of core affinities
+Cy12CoreAffinity = 20
 
 # Crypto - User instance #13
 Cy13Name = "SSL13"
 Cy13IsPolled = 1
 Cy13AcceleratorNumber = 1
-Cy13ExecutionEngine = 0
-Cy13BankNumber = 6
-Cy13NumConcurrentSymRequests = 512
-Cy13NumConcurrentAsymRequests = 64
-
-Cy13RingAsymTx =  0
-Cy13RingAsymRx =  1
-Cy13RingSymTxHi = 2
-Cy13RingSymRxHi = 3
-Cy13RingSymTxLo = 4
-Cy13RingSymRxLo = 5
+# List of core affinities
+Cy13CoreAffinity = 21
 
 # Crypto - User instance #14
 Cy14Name = "SSL14"
 Cy14IsPolled = 1
-Cy14AcceleratorNumber = 0
-Cy14ExecutionEngine = 1
-Cy14BankNumber = 7
-Cy14NumConcurrentSymRequests = 512
-Cy14NumConcurrentAsymRequests = 64
-
-Cy14RingAsymTx =  0
-Cy14RingAsymRx =  1
-Cy14RingSymTxHi = 2
-Cy14RingSymRxHi = 3
-Cy14RingSymTxLo = 4
-Cy14RingSymRxLo = 5
+Cy14AcceleratorNumber = 2
+# List of core affinities
+Cy14CoreAffinity = 22
 
 # Crypto - User instance #15
 Cy15Name = "SSL15"
 Cy15IsPolled = 1
-Cy15AcceleratorNumber = 1
-Cy15ExecutionEngine = 1
-Cy15BankNumber = 7
-Cy15NumConcurrentSymRequests = 512
-Cy15NumConcurrentAsymRequests = 64
-
-Cy15RingAsymTx =  0
-Cy15RingAsymRx =  1
-Cy15RingSymTxHi = 2
-Cy15RingSymRxHi = 3
-Cy15RingSymTxLo = 4
-Cy15RingSymRxLo = 5
+Cy15AcceleratorNumber = 3
+# List of core affinities
+Cy15CoreAffinity = 23
+
+
+
+##############################################
+# Wireless Process Instance Section
+##############################################
+[WIRELESS]
+NumberCyInstances = 0
+NumberDcInstances = 0
+NumProcesses = 0
+
+
index 2649d70..c4db1e8 100644 (file)
@@ -32,8 +32,8 @@
 #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 # 
-#########################################################################
-########################################################
+# #########################################################################
+# ########################################################
 #
 # This file is the configuration for a single dh89xxcc_qa
 # device.
 #   specific core.
 # Each ring bank as 16 rings (hardware assisted queues).
 #
-########################################################
-
-##############################################
+#########################################################
 # General Section
 ##############################################
 
 [GENERAL]
 ServicesEnabled = cy0;cy1
 
+# Use version 2 of the config file
+ConfigVersion = 2
 # Look Aside Cryptographic Configuration
 cyHmacAuthMode = 1
 
 # Look Aside Compression Configuration
 dcTotalSRAMAvailable = 0
-dcSRAMPerInstance = 0
 
 # Firmware Location Configuration
-Firmware_UofPath = uof_firmware.bin
+Firmware_MofPath = mof_firmware.bin
 Firmware_MmpPath = mmp_firmware.bin
 
-# QAT Parameters
-Accel0AdminBankNumber = 0
-Accel0AcceleratorNumber = 0
-Accel0AdminTx = 0
-Accel0AdminRx = 1
-
-Accel1AcceleratorNumber = 1
-Accel1AdminBankNumber = 0
-Accel1AdminTx = 0
-Accel1AdminRx = 1
+#Default values for number of concurrent requests*/
+CyNumConcurrentSymRequests = 512
+CyNumConcurrentAsymRequests = 64
+DcNumConcurrentRequests = 512
 
 #Statistics, valid values: 1,0
 statsGeneral = 1
@@ -90,103 +83,16 @@ statsPrime = 1
 statsRsa = 1
 statsSym = 1
 
+# Enables or disables Single Root Complex IO Virtualization.
+# If this is enabled (1) then SRIOV and VT-d need to be enabled in
+# BIOS and there can be no Cy or Dc instances created in PF (Dom0).
+# If this i disabled (0) then SRIOV and VT-d need to be disabled
+# in BIOS and Cy and/or Dc instances can be used in PF (Dom0)
+SRIOV_Enabled = 0
+
 #Debug feature, if set to 1 it enables additional entries in /proc filesystem
 ProcDebug = 1
 
-
-################################################
-#
-# Hardware Access Ring Bank Configuration
-# Each Accelerator has 8 ring banks (0-7)
-# If the OS supports MSI-X, each ring bank has an
-# steerable MSI-x interrupt which may be
-# affinitized to a particular node/core.
-#
-################################################
-
-
-[Accelerator0]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 8
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 10
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 12
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 14
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 24
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 26
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 28
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 30
-Bank7InterruptCoalescingNumResponses = 0
-
-[Accelerator1]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 9
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 11
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 13
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 15
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 25
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 27
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 29
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 31
-Bank7InterruptCoalescingNumResponses = 0
-
 #######################################################
 #
 # Logical Instances Section
@@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0
 #   the user mode process.
 #   To allow the driver correctly configure the
 #   logical instances associated with this user process,
-#   the process must call the icp_sal_userStart(...)
+#   the process must call the icp_sal_userStartMultiProcess(...)
 #   passing the xxxxx string during process initialisation.
-#   When the user space process is finish it must call
+#   When the user space process is finished it must call
 #   icp_sal_userStop(...) to free resources.
-#   If there are multiple devices present in the system all conf
-#   files that describe the devices must have the same address domain
-#   sections even if the address domain does not configure any instances
-#   on that particular device. So if icp_sal_userStart("xxxxx") is called
-#   then user process address domain [xxxxx] needs to be present in all
-#   conf files for all devices in the system.
+#   NumProcesses will indicate the maximum number of processes
+#   that can call icp_sal_userStartMultiProcess on this instance.
+#   Warning: the resources are preallocated: if NumProcesses
+#   is too high, the driver will fail to load
 #
 # Items configurable by a logical instance are:
 # - Name of the logical instance
 # - The accelerator associated with this logical
 #   instance
-# - The ring bank associated with this logical
-#   instance.
-# - The response mode associated wth this logical instance (0
-#   for IRQ or 1 for polled).
-# - The ring for receiving and the ring for transmitting.
-# - The number of concurrent requests supported by a pair of
-#   rings on this instance (tx + rx). Note this number affects
-#   the amount of memory allocated by the driver. Also
-#   Bank<n>InterruptCoalescingNumResponses is only supported for
-#   number of concurrent requests equal to 512.
+# - The core the instance is affinitized to (optional)
 #
 # Note: Logical instances may not share the same ring, but
 #           may share a ring bank.
@@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0
 # The format of the logical instances are:
 # - For crypto:
 #               Cy<n>Name = "xxxx"
-#               Cy<n>AcceleratorNumber = 0|1
-#               Cy<n>BankNumber = 0-7
-#               Cy<n>IsPolled = 0|1
-#               Cy<n>NumConcurrentSymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>NumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>RingAsymTx = 0-15
-#               Cy<n>RingAsymRx = 0-15
-#               Cy<n>RingSymTxHi = 0-15
-#               Cy<n>RingSymRxHi = 0-15
-#               Cy<n>RingSymRx = 0-15
+#               Cy<n>AcceleratorNumber = 0-3
+#               Cy<n>CoreAffinity = 0-7
 #
 # - For Data Compression
 #               Dc<n>Name = "xxxx"
-#               Dc<n>AcceleratorNumber = 0|1
-#               Dc<n>BankNumber = 0-7
-#               Dc<n>IsPolled = 0|1
-#               Dc<n>NumConcurrentRequests = 64|128|256|512|1024|2048|4096
-#               Dc<n>RingTx = 0-15
-#               Dc<n>RingRx = 0-15
+#               Dc<n>AcceleratorNumber = 0-1
+#               Dc<n>CoreAffinity = 0-7
 #
 # Where:
 #       - n is the number of this logical instance starting at 0.
 #       - xxxx may be any ascii value which identifies the logical instance.
 #
+# Note: for user space processes, a list of values can be specified for
+# the accelerator number and the core affinity: for example
+#              Cy0AcceleratorNumber = 0,2
+#              Cy0CoreAffinity = 0,2,4
+# These comma-separated lists will allow the multiple processes to use
+# different accelerators and cores, and will wrap around the numbers
+# in the list. In the above example, process 0 will use accelerator 0,
+# and process 1 will use accelerator 2
+#
 ########################################################
 
 ##############################################
@@ -270,267 +162,134 @@ Bank7InterruptCoalescingNumResponses = 0
 NumberCyInstances = 0
 NumberDcInstances = 0
 
-
 ##############################################
 # User Process Instance Section
 ##############################################
 [SSL]
 NumberCyInstances = 16
 NumberDcInstances = 0
+NumProcesses = 1
+LimitDevAccess = 0
 
 # Crypto - User instance #0
 Cy0Name = "SSL0"
 Cy0IsPolled = 1
 Cy0AcceleratorNumber = 0
-Cy0ExecutionEngine = 0
-Cy0BankNumber = 0
-Cy0NumConcurrentSymRequests = 512
-Cy0NumConcurrentAsymRequests = 64
-
-Cy0RingAsymTx =  2
-Cy0RingAsymRx =  3
-Cy0RingSymTxHi = 4
-Cy0RingSymRxHi = 5
-Cy0RingSymTxLo = 6
-Cy0RingSymRxLo = 7
+# List of core affinities
+Cy0CoreAffinity = 8
 
 # Crypto - User instance #1
 Cy1Name = "SSL1"
-Cy1AcceleratorNumber = 1
-Cy1ExecutionEngine = 0
-Cy1BankNumber = 0
 Cy1IsPolled = 1
-Cy1NumConcurrentSymRequests = 512
-Cy1NumConcurrentAsymRequests = 64
-
-Cy1RingAsymTx =  2
-Cy1RingAsymRx =  3
-Cy1RingSymTxHi = 4
-Cy1RingSymRxHi = 5
-Cy1RingSymTxLo = 6
-Cy1RingSymRxLo = 7
+Cy1AcceleratorNumber = 1
+# List of core affinities
+Cy1CoreAffinity = 9
 
 # Crypto - User instance #2
 Cy2Name = "SSL2"
-Cy2IsPolled= 1
-Cy2AcceleratorNumber = 0
-Cy2ExecutionEngine = 1
-Cy2BankNumber = 1
-Cy2NumConcurrentSymRequests = 512
-Cy2NumConcurrentAsymRequests = 64
-
-Cy2RingAsymTx =  0
-Cy2RingAsymRx =  1
-Cy2RingSymTxHi = 2
-Cy2RingSymRxHi = 3
-Cy2RingSymTxLo = 4
-Cy2RingSymRxLo = 5
+Cy2IsPolled = 1
+Cy2AcceleratorNumber = 2
+# List of core affinities
+Cy2CoreAffinity = 10
 
 # Crypto - User instance #3
 Cy3Name = "SSL3"
-Cy3AcceleratorNumber = 1
-Cy3ExecutionEngine = 1
-Cy3BankNumber = 1
 Cy3IsPolled = 1
-Cy3NumConcurrentSymRequests = 512
-Cy3NumConcurrentAsymRequests = 64
-
-Cy3RingAsymTx =  0
-Cy3RingAsymRx =  1
-Cy3RingSymTxHi = 2
-Cy3RingSymRxHi = 3
-Cy3RingSymTxLo = 4
-Cy3RingSymRxLo = 5
-
+Cy3AcceleratorNumber = 3
+# List of core affinities
+Cy3CoreAffinity = 11
 
 # Crypto - User instance #4
 Cy4Name = "SSL4"
-Cy4IsPolled= 1
+Cy4IsPolled = 1
 Cy4AcceleratorNumber = 0
-Cy4ExecutionEngine = 0
-Cy4BankNumber = 2
-Cy4NumConcurrentSymRequests = 512
-Cy4NumConcurrentAsymRequests = 64
-
-Cy4RingAsymTx =  0
-Cy4RingAsymRx =  1
-Cy4RingSymTxHi = 2
-Cy4RingSymRxHi = 3
-Cy4RingSymTxLo = 4
-Cy4RingSymRxLo = 5
+# List of core affinities
+Cy4CoreAffinity = 12
 
 # Crypto - User instance #5
 Cy5Name = "SSL5"
-Cy5AcceleratorNumber = 1
-Cy5ExecutionEngine = 0
-Cy5BankNumber = 2
 Cy5IsPolled = 1
-Cy5NumConcurrentSymRequests = 512
-Cy5NumConcurrentAsymRequests = 64
-
-Cy5RingAsymTx =  0
-Cy5RingAsymRx =  1
-Cy5RingSymTxHi = 2
-Cy5RingSymRxHi = 3
-Cy5RingSymTxLo = 4
-Cy5RingSymRxLo = 5
+Cy5AcceleratorNumber = 1
+# List of core affinities
+Cy5CoreAffinity = 13
 
 # Crypto - User instance #6
 Cy6Name = "SSL6"
 Cy6IsPolled = 1
-Cy6AcceleratorNumber = 0
-Cy6ExecutionEngine = 1
-Cy6BankNumber = 3
-Cy6NumConcurrentSymRequests = 512
-Cy6NumConcurrentAsymRequests = 64
-
-Cy6RingAsymTx =  0
-Cy6RingAsymRx =  1
-Cy6RingSymTxHi = 2
-Cy6RingSymRxHi = 3
-Cy6RingSymTxLo = 4
-Cy6RingSymRxLo = 5
+Cy6AcceleratorNumber = 2
+# List of core affinities
+Cy6CoreAffinity = 14
 
 # Crypto - User instance #7
 Cy7Name = "SSL7"
-Cy7AcceleratorNumber = 1
-Cy7ExecutionEngine = 1
-Cy7BankNumber = 3
 Cy7IsPolled = 1
-Cy7NumConcurrentSymRequests = 512
-Cy7NumConcurrentAsymRequests = 64
-
-Cy7RingAsymTx =  0
-Cy7RingAsymRx =  1
-Cy7RingSymTxHi = 2
-Cy7RingSymRxHi = 3
-Cy7RingSymTxLo = 4
-Cy7RingSymRxLo = 5
+Cy7AcceleratorNumber = 3
+# List of core affinities
+Cy7CoreAffinity = 15
 
 # Crypto - User instance #8
 Cy8Name = "SSL8"
 Cy8IsPolled = 1
 Cy8AcceleratorNumber = 0
-Cy8ExecutionEngine = 0
-Cy8BankNumber = 4
-Cy8NumConcurrentSymRequests = 512
-Cy8NumConcurrentAsymRequests = 64
-
-Cy8RingAsymTx =  0
-Cy8RingAsymRx =  1
-Cy8RingSymTxHi = 2
-Cy8RingSymRxHi = 3
-Cy8RingSymTxLo = 4
-Cy8RingSymRxLo = 5
+# List of core affinities
+Cy8CoreAffinity = 24
 
 # Crypto - User instance #9
 Cy9Name = "SSL9"
 Cy9IsPolled = 1
 Cy9AcceleratorNumber = 1
-Cy9ExecutionEngine = 0
-Cy9BankNumber = 4
-Cy9NumConcurrentSymRequests = 512
-Cy9NumConcurrentAsymRequests = 64
-
-Cy9RingAsymTx =  0
-Cy9RingAsymRx =  1
-Cy9RingSymTxHi = 2
-Cy9RingSymRxHi = 3
-Cy9RingSymTxLo = 4
-Cy9RingSymRxLo = 5
+# List of core affinities
+Cy9CoreAffinity = 25
 
 # Crypto - User instance #10
 Cy10Name = "SSL10"
 Cy10IsPolled = 1
-Cy10AcceleratorNumber = 0
-Cy10ExecutionEngine = 1
-Cy10BankNumber = 5
-Cy10NumConcurrentSymRequests = 512
-Cy10NumConcurrentAsymRequests = 64
-
-Cy10RingAsymTx =  0
-Cy10RingAsymRx =  1
-Cy10RingSymTxHi = 2
-Cy10RingSymRxHi = 3
-Cy10RingSymTxLo = 4
-Cy10RingSymRxLo = 5
+Cy10AcceleratorNumber = 2
+# List of core affinities
+Cy10CoreAffinity = 26
 
 # Crypto - User instance #11
 Cy11Name = "SSL11"
 Cy11IsPolled = 1
-Cy11AcceleratorNumber = 1
-Cy11ExecutionEngine = 1
-Cy11BankNumber = 5
-Cy11NumConcurrentSymRequests = 512
-Cy11NumConcurrentAsymRequests = 64
-
-Cy11RingAsymTx =  0
-Cy11RingAsymRx =  1
-Cy11RingSymTxHi = 2
-Cy11RingSymRxHi = 3
-Cy11RingSymTxLo = 4
-Cy11RingSymRxLo = 5
+Cy11AcceleratorNumber = 3
+# List of core affinities
+Cy11CoreAffinity = 27
 
 # Crypto - User instance #12
 Cy12Name = "SSL12"
 Cy12IsPolled = 1
 Cy12AcceleratorNumber = 0
-Cy12ExecutionEngine = 0
-Cy12BankNumber = 6
-Cy12NumConcurrentSymRequests = 512
-Cy12NumConcurrentAsymRequests = 64
-
-Cy12RingAsymTx =  0
-Cy12RingAsymRx =  1
-Cy12RingSymTxHi = 2
-Cy12RingSymRxHi = 3
-Cy12RingSymTxLo = 4
-Cy12RingSymRxLo = 5
+# List of core affinities
+Cy12CoreAffinity = 28
 
 # Crypto - User instance #13
 Cy13Name = "SSL13"
 Cy13IsPolled = 1
 Cy13AcceleratorNumber = 1
-Cy13ExecutionEngine = 0
-Cy13BankNumber = 6
-Cy13NumConcurrentSymRequests = 512
-Cy13NumConcurrentAsymRequests = 64
-
-Cy13RingAsymTx =  0
-Cy13RingAsymRx =  1
-Cy13RingSymTxHi = 2
-Cy13RingSymRxHi = 3
-Cy13RingSymTxLo = 4
-Cy13RingSymRxLo = 5
+# List of core affinities
+Cy13CoreAffinity = 29
 
 # Crypto - User instance #14
 Cy14Name = "SSL14"
 Cy14IsPolled = 1
-Cy14AcceleratorNumber = 0
-Cy14ExecutionEngine = 1
-Cy14BankNumber = 7
-Cy14NumConcurrentSymRequests = 512
-Cy14NumConcurrentAsymRequests = 64
-
-Cy14RingAsymTx =  0
-Cy14RingAsymRx =  1
-Cy14RingSymTxHi = 2
-Cy14RingSymRxHi = 3
-Cy14RingSymTxLo = 4
-Cy14RingSymRxLo = 5
+Cy14AcceleratorNumber = 2
+# List of core affinities
+Cy14CoreAffinity = 30
 
 # Crypto - User instance #15
 Cy15Name = "SSL15"
 Cy15IsPolled = 1
-Cy15AcceleratorNumber = 1
-Cy15ExecutionEngine = 1
-Cy15BankNumber = 7
-Cy15NumConcurrentSymRequests = 512
-Cy15NumConcurrentAsymRequests = 64
+Cy15AcceleratorNumber = 3
+# List of core affinities
+Cy15CoreAffinity = 31
+
+
+##############################################
+# Wireless Process Instance Section
+##############################################
+[WIRELESS]
+NumberCyInstances = 0
+NumberDcInstances = 0
+NumProcesses = 0
+
 
-Cy15RingAsymTx =  0
-Cy15RingAsymRx =  1
-Cy15RingSymTxHi = 2
-Cy15RingSymRxHi = 3
-Cy15RingSymTxLo = 4
-Cy15RingSymRxLo = 5
index 02672fd..d44c2d2 100644 (file)
@@ -32,8 +32,8 @@
 #   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 #   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 # 
-#########################################################################
-########################################################
+# #########################################################################
+# ########################################################
 #
 # This file is the configuration for a single dh89xxcc_qa
 # device.
 #   specific core.
 # Each ring bank as 16 rings (hardware assisted queues).
 #
-########################################################
-
-##############################################
+#########################################################
 # General Section
 ##############################################
 
 [GENERAL]
 ServicesEnabled = cy0;cy1
 
+# Use version 2 of the config file
+ConfigVersion = 2
 # Look Aside Cryptographic Configuration
 cyHmacAuthMode = 1
 
 # Look Aside Compression Configuration
 dcTotalSRAMAvailable = 0
-dcSRAMPerInstance = 0
 
 # Firmware Location Configuration
-Firmware_UofPath = uof_firmware.bin
+Firmware_MofPath = mof_firmware.bin
 Firmware_MmpPath = mmp_firmware.bin
 
-# QAT Parameters
-Accel0AdminBankNumber = 0
-Accel0AcceleratorNumber = 0
-Accel0AdminTx = 0
-Accel0AdminRx = 1
-
-Accel1AcceleratorNumber = 1
-Accel1AdminBankNumber = 0
-Accel1AdminTx = 0
-Accel1AdminRx = 1
+#Default values for number of concurrent requests*/
+CyNumConcurrentSymRequests = 512
+CyNumConcurrentAsymRequests = 64
+DcNumConcurrentRequests = 512
 
 #Statistics, valid values: 1,0
 statsGeneral = 1
@@ -90,103 +83,16 @@ statsPrime = 1
 statsRsa = 1
 statsSym = 1
 
+# Enables or disables Single Root Complex IO Virtualization.
+# If this is enabled (1) then SRIOV and VT-d need to be enabled in
+# BIOS and there can be no Cy or Dc instances created in PF (Dom0).
+# If this i disabled (0) then SRIOV and VT-d need to be disabled
+# in BIOS and Cy and/or Dc instances can be used in PF (Dom0)
+SRIOV_Enabled = 0
+
 #Debug feature, if set to 1 it enables additional entries in /proc filesystem
 ProcDebug = 1
 
-
-################################################
-#
-# Hardware Access Ring Bank Configuration
-# Each Accelerator has 8 ring banks (0-7)
-# If the OS supports MSI-X, each ring bank has an
-# steerable MSI-x interrupt which may be
-# affinitized to a particular node/core.
-#
-################################################
-
-
-[Accelerator0]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 0
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 2
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 4
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 6
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 7
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 7
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 7
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 7
-Bank7InterruptCoalescingNumResponses = 0
-
-[Accelerator1]
-Bank0InterruptCoalescingEnabled = 1
-Bank0InterruptCoalescingTimerNs = 10000
-Bank0CoreIDAffinity = 1
-Bank0InterruptCoalescingNumResponses = 0
-
-Bank1InterruptCoalescingEnabled = 1
-Bank1InterruptCoalescingTimerNs = 10000
-Bank1CoreIDAffinity = 3
-Bank1InterruptCoalescingNumResponses = 0
-
-Bank2InterruptCoalescingEnabled = 1
-Bank2InterruptCoalescingTimerNs = 10000
-Bank2CoreIDAffinity = 5
-Bank2InterruptCoalescingNumResponses = 0
-
-Bank3InterruptCoalescingEnabled = 1
-Bank3InterruptCoalescingTimerNs = 10000
-Bank3CoreIDAffinity = 7
-Bank3InterruptCoalescingNumResponses = 0
-
-Bank4InterruptCoalescingEnabled = 1
-Bank4InterruptCoalescingTimerNs = 10000
-Bank4CoreIDAffinity = 7
-Bank4InterruptCoalescingNumResponses = 0
-
-Bank5InterruptCoalescingEnabled = 1
-Bank5InterruptCoalescingTimerNs = 10000
-Bank5CoreIDAffinity = 7
-Bank5InterruptCoalescingNumResponses = 0
-
-Bank6InterruptCoalescingEnabled = 1
-Bank6InterruptCoalescingTimerNs = 10000
-Bank6CoreIDAffinity = 7
-Bank6InterruptCoalescingNumResponses = 0
-
-Bank7InterruptCoalescingEnabled = 1
-Bank7InterruptCoalescingTimerNs = 10000
-Bank7CoreIDAffinity = 7
-Bank7InterruptCoalescingNumResponses = 0
-
 #######################################################
 #
 # Logical Instances Section
@@ -205,31 +111,20 @@ Bank7InterruptCoalescingNumResponses = 0
 #   the user mode process.
 #   To allow the driver correctly configure the
 #   logical instances associated with this user process,
-#   the process must call the icp_sal_userStart(...)
+#   the process must call the icp_sal_userStartMultiProcess(...)
 #   passing the xxxxx string during process initialisation.
-#   When the user space process is finish it must call
+#   When the user space process is finished it must call
 #   icp_sal_userStop(...) to free resources.
-#   If there are multiple devices present in the system all conf
-#   files that describe the devices must have the same address domain
-#   sections even if the address domain does not configure any instances
-#   on that particular device. So if icp_sal_userStart("xxxxx") is called
-#   then user process address domain [xxxxx] needs to be present in all
-#   conf files for all devices in the system.
+#   NumProcesses will indicate the maximum number of processes
+#   that can call icp_sal_userStartMultiProcess on this instance.
+#   Warning: the resources are preallocated: if NumProcesses
+#   is too high, the driver will fail to load
 #
 # Items configurable by a logical instance are:
 # - Name of the logical instance
 # - The accelerator associated with this logical
 #   instance
-# - The ring bank associated with this logical
-#   instance.
-# - The response mode associated wth this logical instance (0
-#   for IRQ or 1 for polled).
-# - The ring for receiving and the ring for transmitting.
-# - The number of concurrent requests supported by a pair of
-#   rings on this instance (tx + rx). Note this number affects
-#   the amount of memory allocated by the driver. Also
-#   Bank<n>InterruptCoalescingNumResponses is only supported for
-#   number of concurrent requests equal to 512.
+# - The core the instance is affinitized to (optional)
 #
 # Note: Logical instances may not share the same ring, but
 #           may share a ring bank.
@@ -237,30 +132,27 @@ Bank7InterruptCoalescingNumResponses = 0
 # The format of the logical instances are:
 # - For crypto:
 #               Cy<n>Name = "xxxx"
-#               Cy<n>AcceleratorNumber = 0|1
-#               Cy<n>BankNumber = 0-7
-#               Cy<n>IsPolled = 0|1
-#               Cy<n>NumConcurrentSymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>NumConcurrentAsymRequests = 64|128|256|512|1024|2048|4096
-#               Cy<n>RingAsymTx = 0-15
-#               Cy<n>RingAsymRx = 0-15
-#               Cy<n>RingSymTxHi = 0-15
-#               Cy<n>RingSymRxHi = 0-15
-#               Cy<n>RingSymRx = 0-15
+#               Cy<n>AcceleratorNumber = 0-3
+#               Cy<n>CoreAffinity = 0-7
 #
 # - For Data Compression
 #               Dc<n>Name = "xxxx"
-#               Dc<n>AcceleratorNumber = 0|1
-#               Dc<n>BankNumber = 0-7
-#               Dc<n>IsPolled = 0|1
-#               Dc<n>NumConcurrentRequests = 64|128|256|512|1024|2048|4096
-#               Dc<n>RingTx = 0-15
-#               Dc<n>RingRx = 0-15
+#               Dc<n>AcceleratorNumber = 0-1
+#               Dc<n>CoreAffinity = 0-7
 #
 # Where:
 #       - n is the number of this logical instance starting at 0.
 #       - xxxx may be any ascii value which identifies the logical instance.
 #
+# Note: for user space processes, a list of values can be specified for
+# the accelerator number and the core affinity: for example
+#              Cy0AcceleratorNumber = 0,2
+#              Cy0CoreAffinity = 0,2,4
+# These comma-separated lists will allow the multiple processes to use
+# different accelerators and cores, and will wrap around the numbers
+# in the list. In the above example, process 0 will use accelerator 0,
+# and process 1 will use accelerator 2
+#
 ########################################################
 
 ##############################################
@@ -270,139 +162,77 @@ Bank7InterruptCoalescingNumResponses = 0
 NumberCyInstances = 0
 NumberDcInstances = 0
 
-
 ##############################################
 # User Process Instance Section
 ##############################################
 [SSL]
 NumberCyInstances = 8
 NumberDcInstances = 0
+NumProcesses = 1
+LimitDevAccess = 0
 
 # Crypto - User instance #0
 Cy0Name = "SSL0"
 Cy0IsPolled = 1
 Cy0AcceleratorNumber = 0
-Cy0ExecutionEngine = 0
-Cy0BankNumber = 0
-Cy0NumConcurrentSymRequests = 512
-Cy0NumConcurrentAsymRequests = 64
-
-Cy0RingAsymTx =  2
-Cy0RingAsymRx =  3
-Cy0RingSymTxHi = 4
-Cy0RingSymRxHi = 5
-Cy0RingSymTxLo = 6
-Cy0RingSymRxLo = 7
+# List of core affinities
+Cy0CoreAffinity = 0
 
 # Crypto - User instance #1
 Cy1Name = "SSL1"
-Cy1AcceleratorNumber = 1
-Cy1ExecutionEngine = 0
-Cy1BankNumber = 0
 Cy1IsPolled = 1
-Cy1NumConcurrentSymRequests = 512
-Cy1NumConcurrentAsymRequests = 64
-
-Cy1RingAsymTx =  2
-Cy1RingAsymRx =  3
-Cy1RingSymTxHi = 4
-Cy1RingSymRxHi = 5
-Cy1RingSymTxLo = 6
-Cy1RingSymRxLo = 7
+Cy1AcceleratorNumber = 1
+# List of core affinities
+Cy1CoreAffinity = 1
 
 # Crypto - User instance #2
 Cy2Name = "SSL2"
-Cy2IsPolled= 1
-Cy2AcceleratorNumber = 0
-Cy2ExecutionEngine = 1
-Cy2BankNumber = 1
-Cy2NumConcurrentSymRequests = 512
-Cy2NumConcurrentAsymRequests = 64
-
-Cy2RingAsymTx =  0
-Cy2RingAsymRx =  1
-Cy2RingSymTxHi = 2
-Cy2RingSymRxHi = 3
-Cy2RingSymTxLo = 4
-Cy2RingSymRxLo = 5
+Cy2IsPolled = 1
+Cy2AcceleratorNumber = 2
+# List of core affinities
+Cy2CoreAffinity = 2
 
 # Crypto - User instance #3
 Cy3Name = "SSL3"
-Cy3AcceleratorNumber = 1
-Cy3ExecutionEngine = 1
-Cy3BankNumber = 1
 Cy3IsPolled = 1
-Cy3NumConcurrentSymRequests = 512
-Cy3NumConcurrentAsymRequests = 64
-
-Cy3RingAsymTx =  0
-Cy3RingAsymRx =  1
-Cy3RingSymTxHi = 2
-Cy3RingSymRxHi = 3
-Cy3RingSymTxLo = 4
-Cy3RingSymRxLo = 5
-
+Cy3AcceleratorNumber = 3
+# List of core affinities
+Cy3CoreAffinity = 3
 
 # Crypto - User instance #4
 Cy4Name = "SSL4"
-Cy4IsPolled= 1
+Cy4IsPolled = 1
 Cy4AcceleratorNumber = 0
-Cy4ExecutionEngine = 0
-Cy4BankNumber = 2
-Cy4NumConcurrentSymRequests = 512
-Cy4NumConcurrentAsymRequests = 64
-
-Cy4RingAsymTx =  0
-Cy4RingAsymRx =  1
-Cy4RingSymTxHi = 2
-Cy4RingSymRxHi = 3
-Cy4RingSymTxLo = 4
-Cy4RingSymRxLo = 5
+# List of core affinities
+Cy4CoreAffinity = 4
 
 # Crypto - User instance #5
 Cy5Name = "SSL5"
-Cy5AcceleratorNumber = 1
-Cy5ExecutionEngine = 0
-Cy5BankNumber = 2
 Cy5IsPolled = 1
-Cy5NumConcurrentSymRequests = 512
-Cy5NumConcurrentAsymRequests = 64
-
-Cy5RingAsymTx =  0
-Cy5RingAsymRx =  1
-Cy5RingSymTxHi = 2
-Cy5RingSymRxHi = 3
-Cy5RingSymTxLo = 4
-Cy5RingSymRxLo = 5
+Cy5AcceleratorNumber = 1
+# List of core affinities
+Cy5CoreAffinity = 5
 
 # Crypto - User instance #6
 Cy6Name = "SSL6"
 Cy6IsPolled = 1
-Cy6AcceleratorNumber = 0
-Cy6ExecutionEngine = 1
-Cy6BankNumber = 3
-Cy6NumConcurrentSymRequests = 512
-Cy6NumConcurrentAsymRequests = 64
-
-Cy6RingAsymTx =  0
-Cy6RingAsymRx =  1
-Cy6RingSymTxHi = 2
-Cy6RingSymRxHi = 3
-Cy6RingSymTxLo = 4
-Cy6RingSymRxLo = 5
+Cy6AcceleratorNumber = 2
+# List of core affinities
+Cy6CoreAffinity = 6
 
 # Crypto - User instance #7
 Cy7Name = "SSL7"
-Cy7AcceleratorNumber = 1
-Cy7ExecutionEngine = 1
-Cy7BankNumber = 3
 Cy7IsPolled = 1
-Cy7NumConcurrentSymRequests = 512
-Cy7NumConcurrentAsymRequests = 64
+Cy7AcceleratorNumber = 3
+# List of core affinities
+Cy7CoreAffinity = 7
+
+##############################################
+# Wireless Process Instance Section
+##############################################
+[WIRELESS]
+NumberCyInstances = 0
+NumberDcInstances = 0
+NumProcesses = 0
+
 
-Cy7RingAsymTx =  0
-Cy7RingAsymRx =  1
-Cy7RingSymTxHi = 2
-Cy7RingSymRxHi = 3
-Cy7RingSymTxLo = 4
-Cy7RingSymRxLo = 5
index fe51511..648ee11 100644 (file)
 
 #include "crypto.h"
 
-#define NUM_HMAC       (10)
-#define NUM_CRYPTO     (7)
-
-
 /* CIPHER KEY LENGTHS */
 #define KEY_SIZE_64_IN_BYTES   (64 / 8)
 #define KEY_SIZE_56_IN_BYTES   (56 / 8)
@@ -203,7 +199,7 @@ struct glob_keys g_crypto_hash_keys = {
  * +18 takes this to the next cache line.
  */
 
-#define CRYPTO_OFFSET_TO_OPDATA        (ETHER_MAX_LEN+18)
+#define CRYPTO_OFFSET_TO_OPDATA                (ETHER_MAX_LEN+18)
 
 /*
  * Default number of requests to place on the hardware ring before kicking the
@@ -560,6 +556,10 @@ initCySymSession(const int pkt_cipher_alg,
                return CPA_STATUS_SUCCESS;
        }
 
+       /* Set flags for digest operations */
+       sessionSetupData.digestIsAppended = CPA_FALSE;
+       sessionSetupData.verifyDigest = CPA_TRUE;
+
        /* Get the session context size based on the crypto and/or hash operations*/
        status = cpaCySymDpSessionCtxGetSize(cyInstanceHandle, &sessionSetupData,
                        &sessionCtxSizeInBytes);
@@ -576,7 +576,7 @@ initCySymSession(const int pkt_cipher_alg,
        }
 
        status = cpaCySymDpInitSession(cyInstanceHandle, &sessionSetupData,
-                       CPA_TRUE,CPA_FALSE, *ppSessionCtx);
+                       *ppSessionCtx);
        if (CPA_STATUS_SUCCESS != status) {
                printf("Crypto: cpaCySymDpInitSession failed with status %"PRId32"\n", status);
                return CPA_STATUS_FAIL;
@@ -617,11 +617,11 @@ initSessionDataTables(struct qa_core_conf *qaCoreConf,uint32_t lcore_id)
 int
 crypto_init(void)
 {
-       if (CPA_STATUS_SUCCESS != icp_sal_userStart("SSL")) {
+       if (CPA_STATUS_SUCCESS != icp_sal_userStartMultiProcess("SSL",CPA_FALSE)) {
                printf("Crypto: Could not start sal for user space\n");
                return CPA_STATUS_FAIL;
        }
-       printf("Crypto: icp_sal_userStart(\"SSL\")\n");
+       printf("Crypto: icp_sal_userStartMultiProcess(\"SSL\",CPA_FALSE)\n");
        return 0;
 }
 
@@ -758,6 +758,9 @@ crypto_encrypt(struct rte_mbuf *rte_buff, enum cipher_alg c, enum hash_alg h)
                                        + CRYPTO_OFFSET_TO_OPDATA);
        uint32_t lcore_id;
 
+       if (unlikely(c >= NUM_CRYPTO || h >= NUM_HMAC))
+               return CRYPTO_RESULT_FAIL;
+
        lcore_id = rte_lcore_id();
 
        bzero(opData, sizeof(CpaCySymDpOpData));
@@ -830,6 +833,9 @@ crypto_decrypt(struct rte_mbuf *rte_buff, enum cipher_alg c, enum hash_alg h)
                        + CRYPTO_OFFSET_TO_OPDATA);
        uint32_t lcore_id;
 
+       if (unlikely(c >= NUM_CRYPTO || h >= NUM_HMAC))
+               return CRYPTO_RESULT_FAIL;
+
        lcore_id = rte_lcore_id();
 
        bzero(opData, sizeof(CpaCySymDpOpData));
index f8f382d..2e87176 100644 (file)
@@ -45,6 +45,7 @@ enum cipher_alg {
        CIPHER_DES3_CBC,
        CIPHER_AES,
        CIPHER_AES_CBC_128,
+       NUM_CRYPTO,
 };
 
 enum hash_alg {
@@ -58,7 +59,8 @@ enum hash_alg {
        HASH_SHA384,
        HASH_SHA512,
        HASH_AES_XCBC,
-       HASH_AES_XCBC_96
+       HASH_AES_XCBC_96,
+       NUM_HMAC,
 };
 
 /* Return value from crypto_{encrypt/decrypt} */
index 3baed0d..62507fd 100644 (file)
@@ -169,10 +169,11 @@ static struct rte_eth_conf port_conf = {
        .rx_adv_conf = {
                .rss_conf = {
                        .rss_key = NULL,
-                       .rss_hf = ETH_RSS_IPV4,
+                       .rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6,
                },
        },
        .txmode = {
+               .mq_mode = ETH_DCB_NONE,
        },
 };
 
@@ -318,6 +319,7 @@ nic_tx_send_packet(struct rte_mbuf *pkt, uint8_t port)
 static inline uint8_t
 get_output_port(uint8_t input_port)
 {
+       RTE_BUILD_BUG_ON((RTE_MAX_ETHPORTS & 1) != 0);
        return (uint8_t)(input_port ^ 1);
 }
 
@@ -492,10 +494,10 @@ static void
 print_usage(const char *prgname)
 {
        printf ("%s [EAL options] -- -p PORTMASK [--no-promisc]"
-               "  [--config (port,queue,lcore)[,(port,queue,lcore]]\n"
+               "  [--config '(port,queue,lcore)[,(port,queue,lcore)]'\n"
                "  -p PORTMASK: hexadecimal bitmask of ports to configure\n"
                "  --no-promisc: disable promiscuous mode (default is ON)\n"
-               "  --config (port,queue,lcore): rx queues configuration\n",
+               "  --config '(port,queue,lcore)': rx queues configuration\n",
                prgname);
 }
 
@@ -795,7 +797,7 @@ MAIN(int argc, char **argv)
                        fflush(stdout);
 
                        ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd,
-                                       socketid, &rx_conf, pktmbuf_pool[socketid]);
+                                       socketid, &rx_conf, pktmbuf_pool[socketid]);
                        if (ret < 0)
                                rte_panic("rte_eth_rx_queue_setup: err=%d,"
                                                "port=%d\n", ret, portid);