]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | .. BSD LICENSE |
2 | Copyright(c) 2016 Intel Corporation. All rights reserved. | |
3 | ||
4 | Redistribution and use in source and binary forms, with or without | |
5 | modification, are permitted provided that the following conditions | |
6 | are met: | |
7 | ||
8 | * Redistributions of source code must retain the above copyright | |
9 | notice, this list of conditions and the following disclaimer. | |
10 | * Redistributions in binary form must reproduce the above copyright | |
11 | notice, this list of conditions and the following disclaimer in | |
12 | the documentation and/or other materials provided with the | |
13 | distribution. | |
14 | * Neither the name of Intel Corporation nor the names of its | |
15 | contributors may be used to endorse or promote products derived | |
16 | from this software without specific prior written permission. | |
17 | ||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
22 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
29 | ||
30 | AES-NI GCM Crypto Poll Mode Driver | |
31 | ================================== | |
32 | ||
33 | ||
34 | The AES-NI GCM PMD (**librte_pmd_aesni_gcm**) provides poll mode crypto driver | |
35 | support for utilizing Intel multi buffer library (see AES-NI Multi-buffer PMD documentation | |
36 | to learn more about it, including installation). | |
37 | ||
38 | The AES-NI GCM PMD has current only been tested on Fedora 21 64-bit with gcc. | |
39 | ||
40 | Features | |
41 | -------- | |
42 | ||
43 | AESNI GCM PMD has support for: | |
44 | ||
45 | Cipher algorithms: | |
46 | ||
47 | * RTE_CRYPTO_CIPHER_AES_GCM | |
48 | ||
49 | Authentication algorithms: | |
50 | ||
51 | * RTE_CRYPTO_AUTH_AES_GCM | |
52 | ||
53 | Initialization | |
54 | -------------- | |
55 | ||
56 | In order to enable this virtual crypto PMD, user must: | |
57 | ||
58 | * Export the environmental variable AESNI_MULTI_BUFFER_LIB_PATH with the path where | |
59 | the library was extracted. | |
60 | ||
61 | * Build the multi buffer library (go to Installation section in AES-NI MB PMD documentation). | |
62 | ||
63 | * Set CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=y in config/common_base. | |
64 | ||
65 | To use the PMD in an application, user must: | |
66 | ||
67 | * Call rte_eal_vdev_init("crypto_aesni_gcm") within the application. | |
68 | ||
69 | * Use --vdev="crypto_aesni_gcm" in the EAL options, which will call rte_eal_vdev_init() internally. | |
70 | ||
71 | The following parameters (all optional) can be provided in the previous two calls: | |
72 | ||
73 | * socket_id: Specify the socket where the memory for the device is going to be allocated | |
74 | (by default, socket_id will be the socket where the core that is creating the PMD is running on). | |
75 | ||
76 | * max_nb_queue_pairs: Specify the maximum number of queue pairs in the device (8 by default). | |
77 | ||
78 | * max_nb_sessions: Specify the maximum number of sessions that can be created (2048 by default). | |
79 | ||
80 | Example: | |
81 | ||
82 | .. code-block:: console | |
83 | ||
84 | ./l2fwd-crypto -c 40 -n 4 --vdev="crypto_aesni_gcm,socket_id=1,max_nb_sessions=128" | |
85 | ||
86 | Limitations | |
87 | ----------- | |
88 | ||
89 | * Chained mbufs are not supported. | |
90 | * Hash only is not supported. | |
91 | * Cipher only is not supported. | |
92 | * Only in-place is currently supported (destination address is the same as source address). | |
93 | * Only supports session-oriented API implementation (session-less APIs are not supported). | |
94 | * Not performance tuned. |