Modified cryptodev library section in Programmer's Guide, with the recent changes in the crypto sessions.
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozow...@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.gua...@intel.com> --- doc/guides/prog_guide/cryptodev_lib.rst | 59 ++-- doc/guides/prog_guide/img/cryptodev_sym_sess.svg | 418 ++++++++++++++++++++--- 2 files changed, 400 insertions(+), 77 deletions(-) diff --git a/doc/guides/prog_guide/cryptodev_lib.rst b/doc/guides/prog_guide/cryptodev_lib.rst index 4644802..3d3239d 100644 --- a/doc/guides/prog_guide/cryptodev_lib.rst +++ b/doc/guides/prog_guide/cryptodev_lib.rst @@ -114,9 +114,8 @@ The rte_cryptodev_configure API is used to configure a Crypto device. int rte_cryptodev_configure(uint8_t dev_id, struct rte_cryptodev_config *config) -The ``rte_cryptodev_config`` structure is used to pass the configuration parameters. -In contains parameter for socket selection, number of queue pairs and the -session mempool configuration. +The ``rte_cryptodev_config`` structure is used to pass the configuration +parameters for socket selection and number of queue pairs. .. code-block:: c @@ -125,12 +124,6 @@ session mempool configuration. /**< Socket to allocate resources on */ uint16_t nb_queue_pairs; /**< Number of queue pairs to configure on device */ - - struct { - uint32_t nb_objs; - uint32_t cache_size; - } session_mp; - /**< Session mempool configuration */ }; @@ -431,7 +424,7 @@ operations, as well as also supporting AEAD operations. Session and Session Management ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Session are used in symmetric cryptographic processing to store the immutable +Sessions are used in symmetric cryptographic processing to store the immutable data defined in a cryptographic transform which is used in the operation processing of a packet flow. Sessions are used to manage information such as expand cipher keys and HMAC IPADs and OPADs, which need to be calculated for a @@ -442,27 +435,31 @@ Crypto workloads. .. figure:: img/cryptodev_sym_sess.* -The Crypto device framework provides a set of session pool management APIs for -the creation and freeing of the sessions, utilizing the Mempool Library. - -The framework also provides hooks so the PMDs can pass the amount of memory -required for that PMDs private session parameters, as well as initialization -functions for the configuration of the session parameters and freeing function -so the PMD can managed the memory on destruction of a session. - -**Note**: Sessions created on a particular device can only be used on Crypto -devices of the same type - the same driver id used by this devices, -and if you try to use a session on a device different -to that on which it was created then the Crypto operation will fail. - -``rte_cryptodev_sym_session_create()`` is used to create a symmetric session on -Crypto device. A symmetric transform chain is used to specify the particular -operation and its parameters. See the section below for details on transforms. - -.. code-block:: c - - struct rte_cryptodev_sym_session * rte_cryptodev_sym_session_create( - uint8_t dev_id, struct rte_crypto_sym_xform *xform); +The Crypto device framework provides APIs to allocate and initizalize sessions +for crypto devices, where sessions are mempool objects. +It is the application's responsibility to create and manage the session mempools. +This approach allows for different scenarios such as having a single session +mempool for all crypto devices (where the mempool object size is big +enough to hold the private session of any crypto device), as well as having +multiple session mempools of different sizes for better memory usage. + +An application can use ``rte_cryptodev_get_private_session_size()`` to +get the private session size of given crypto device. This function would allow +an application to calculate the max device session size of all crypto devices +to create a single session mempool. +If instead an application creates multiple session mempools, the Crypto device +framework also provides ``rte_cryptodev_get_header_session_size`` to get +the size of an uninitialized session. + +Once the session mempools have been created, ``rte_cryptodev_sym_session_create()`` +is used to allocate an uninitialized session from the given mempool. +The session then must be initialized using ``rte_cryptodev_sym_session_init()`` +for each of the required crypto devices. A symmetric transform chain +is used to specify the operation and its parameters. See the section below for +details on transforms. + +Unused session should be freed using ``rte_cryptodev_sym_session_free`` which +returns them to their mempool. **Note**: For AEAD operations the algorithm selected for authentication and ciphering must aligned, eg AES_GCM. diff --git a/doc/guides/prog_guide/img/cryptodev_sym_sess.svg b/doc/guides/prog_guide/img/cryptodev_sym_sess.svg index e5f41ec..a807ceb 100644 --- a/doc/guides/prog_guide/img/cryptodev_sym_sess.svg +++ b/doc/guides/prog_guide/img/cryptodev_sym_sess.svg @@ -1,10 +1,50 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by Microsoft Visio, SVG Export cryptodev_sym_sess.svg Page-1 --> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" - width="2.17241in" height="2.8102in" viewBox="0 0 156.413 202.335" xml:space="preserve" color-interpolation-filters="sRGB" - class="st10"> - <style type="text/css"> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="4.8933434in" + height="3.8972795in" + viewBox="0 0 352.31955 280.60496" + xml:space="preserve" + class="st10" + version="1.1" + id="svg70" + sodipodi:docname="cryptodev_sym_sess.svg" + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-rule:evenodd;stroke-linecap:square;stroke-miterlimit:3" + inkscape:version="0.92.1 r15371"><metadata + id="metadata74"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1051" + id="namedview72" + showgrid="false" + inkscape:zoom="1.7495789" + inkscape:cx="208.74719" + inkscape:cy="216.52777" + inkscape:window-x="-9" + inkscape:window-y="-9" + inkscape:window-maximized="0" + inkscape:current-layer="g68-0" /> + <style + type="text/css" + id="style2"> <![CDATA[ .st1 {fill:url(#grad0-4);stroke:#386288;stroke-width:0.75} .st2 {fill:#386288;font-family:Calibri;font-size:0.833336em} @@ -19,48 +59,334 @@ ]]> </style> - <defs id="Patterns_And_Gradients"> - <linearGradient id="grad0-4" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(60 0.5 0.5)"> - <stop offset="0" stop-color="#e8ebef" stop-opacity="1"/> - <stop offset="0.24" stop-color="#f4f5f7" stop-opacity="1"/> - <stop offset="0.54" stop-color="#feffff" stop-opacity="1"/> + <defs + id="Patterns_And_Gradients"><marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5421" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Lend"><path + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#41719c;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + id="path5419" + inkscape:connector-curvature="0" /></marker><marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend" + style="overflow:visible" + inkscape:isstock="true"><path + id="path5004" + style="fill:#41719c;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + inkscape:connector-curvature="0" /></marker><marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow1Lend" + style="overflow:visible" + inkscape:isstock="true"><path + id="path4986" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="matrix(-0.8,0,0,-0.8,-10,0)" + inkscape:connector-curvature="0" /></marker> + <linearGradient + id="grad0-4" + x1="0" + y1="0" + x2="1" + y2="0" + gradientTransform="rotate(60,0.5,0.5)"> + <stop + offset="0" + stop-color="#e8ebef" + stop-opacity="1" + id="stop4" /> + <stop + offset="0.24" + stop-color="#f4f5f7" + stop-opacity="1" + id="stop6" /> + <stop + offset="0.54" + stop-color="#feffff" + stop-opacity="1" + id="stop8" /> </linearGradient> - </defs> - <defs id="Filters"> - <filter id="filter_2"> - <feGaussianBlur stdDeviation="2"/> + <filter + id="filter_2-4"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur12-0" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#grad0-4" + id="linearGradient189" + gradientTransform="scale(0.8787489,1.1379815)" + x1="-0.42674366" + y1="0.98859203" + x2="176.71146" + y2="0.98859203" + gradientUnits="userSpaceOnUse" /><filter + id="filter_2-5"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur12-8" /></filter><filter + id="filter_2-3"><feGaussianBlur + stdDeviation="2" + id="feGaussianBlur12-2" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#grad0-4" + id="linearGradient189-7" + gradientTransform="scale(0.8787489,1.1379815)" + x1="-0.42674366" + y1="0.98859203" + x2="176.71146" + y2="0.98859203" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#grad0-4" + id="linearGradient500" + gradientTransform="matrix(0.8787489,0,0,1.1379815,12.431599,21.739241)" + x1="-0.42674366" + y1="0.98859203" + x2="176.71146" + y2="0.98859203" + gradientUnits="userSpaceOnUse" /></defs> + <defs + id="Filters"> + <filter + id="filter_2"> + <feGaussianBlur + stdDeviation="2" + id="feGaussianBlur12" /> </filter> </defs> - <g> - <title>Page-1</title> - <g id="shape18-1" transform="translate(0.749889,-0.75)"> - <title>Rounded Rectangle.12</title> - <desc>Crypto Symmetric Session</desc> - <path d="M6.78 202.33 L148.14 202.33 A6.77735 6.77735 -180 0 0 154.91 195.56 L154.91 8.28 A6.77735 6.77735 -180 0 0 148.14 - 1.5 L6.78 1.5 A6.77735 6.77735 -180 0 0 -0 8.28 L0 195.56 A6.77735 6.77735 -180 0 0 6.78 202.33 Z" - class="st1"/> - <text x="24.76" y="14.5" class="st2">Crypto Symmetric Session</text> </g> - <g id="shape19-6" transform="translate(10.6711,-9.82087)"> - <title>Rounded Rectangle.13</title> - <desc>Private Session Data</desc> - <g id="shadow19-7" transform="matrix(1,0,0,1,0.345598,1.97279)" class="st3"> - <path d="M5.91 202.33 L129.16 202.33 A5.90925 5.90925 -180 0 0 135.07 196.43 L135.07 103.65 A5.90925 5.90925 -180 - 0 0 129.16 97.74 L5.91 97.74 A5.90925 5.90925 -180 0 0 -0 103.65 L0 196.43 A5.90925 5.90925 -180 0 0 - 5.91 202.33 Z" class="st4"/> - </g> - <path d="M5.91 202.33 L129.16 202.33 A5.90925 5.90925 -180 0 0 135.07 196.43 L135.07 103.65 A5.90925 5.90925 -180 0 0 - 129.16 97.74 L5.91 97.74 A5.90925 5.90925 -180 0 0 -0 103.65 L0 196.43 A5.90925 5.90925 -180 0 0 5.91 202.33 - Z" class="st5"/> - <text x="26.34" y="153.04" class="st6">Private Session Data</text> </g> - <g id="shape20-12" transform="translate(10.6711,-122.923)"> - <title>Rounded Rectangle.15</title> - <desc>General Session Data (struct rte_cryptodev_sym_session)</desc> - <path d="M5.91 202.33 L129.16 202.33 A5.90925 5.90925 -180 0 0 135.07 196.43 L135.07 160.06 A5.90925 5.90925 -180 0 0 - 129.16 154.15 L5.91 154.15 A5.90925 5.90925 -180 0 0 -0 160.06 L0 196.43 A5.90925 5.90925 -180 0 0 5.91 - 202.33 Z" class="st7"/> - <text x="24.58" y="175.24" class="st6">General Session Data <tspan x="9.16" dy="1.5em" class="st8">(</tspan><tspan - class="st9">struct </tspan><tspan class="st8">rte</tspan><tspan class="st8">_</tspan><tspan class="st8">cryptodev</tspan><tspan - class="st8">_</tspan><tspan class="st8">sym</tspan><tspan class="st8">_</tspan><tspan class="st8">session</tspan><tspan - class="st8">)</tspan></text> </g> + <g + id="g68" + transform="matrix(1,0,0,0.41409874,-12.807629,-5.4621159)"> + <title + id="title16">Page-1</title> + <g + id="shape18-1" + transform="translate(0.749889,-0.75)"> + <title + id="title18">Rounded Rectangle.12</title> + <desc + id="desc20">Crypto Symmetric Session</desc> + <path + d="M 19.211599,224.06924 H 160.5716 a 6.77735,6.77735 0 0 0 6.77,-6.77 V 30.019241 a 6.77735,6.77735 0 0 0 -6.77,-6.78 H 19.211599 a 6.77735,6.77735 0 0 0 -6.78,6.78 V 217.29924 a 6.77735,6.77735 0 0 0 6.78,6.77 z" + class="st1" + id="path22" + style="fill:url(#linearGradient500);stroke:#386288;stroke-width:0.75" + inkscape:connector-curvature="0" /> + <text + x="63.123039" + y="28.531481" + class="st2" + id="text24" + style="font-size:16.97244835px;font-family:Calibri;fill:#386288;stroke-width:1.69723928" + transform="scale(0.58919214,1.6972392)">Crypto Symmetric Session</text> + + </g> + <g + id="shape19-6" + transform="translate(10.6711,-9.82087)"> + <title + id="title27">Rounded Rectangle.13</title> + <desc + id="desc29">Private Session Data</desc> + </g> + <g + id="shape20-12" + transform="matrix(1,0,0,2.5278193,23.531375,-309.78186)"> + <title + id="title39">Rounded Rectangle.15</title> + <desc + id="desc41">void *sess_private_data[]</desc> + <path + d="m 5.91,202.33 h 123.25 a 5.90925,5.90925 -180 0 0 5.91,-5.9 v -36.37 a 5.90925,5.90925 -180 0 0 -5.91,-5.91 H 5.91 A 5.90925,5.90925 -180 0 0 0,160.06 v 36.37 a 5.90925,5.90925 -180 0 0 5.91,5.9 z" + class="st7" + id="path43" + inkscape:connector-curvature="0" + style="fill:#ffffff;stroke:#41719c;stroke-width:0.75" /> + <text + x="14.072042" + y="159.1931" + class="st6" + id="text65" + style="font-size:11.41061592px;font-family:Calibri;fill:#41719c;stroke-width:1.14105785" + transform="scale(0.92359087,1.0827305)">void *sess_private_data[] <tspan + x="-3.5230706" + class="st9" + id="tspan47" + style="font-weight:bold;font-size:9.12843513px;stroke-width:1.14105785" /></text> + + <rect + style="fill:none;fill-opacity:1;stroke:#41719c;stroke-width:0.73305672;stroke-opacity:1" + id="rect4604" + width="15.968175" + height="14.230948" + x="13.494645" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7" + width="15.968174" + height="14.230948" + x="29.46282" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7-6" + width="15.968174" + height="14.230948" + x="45.430992" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7-6-9" + width="15.968174" + height="14.230948" + x="61.399166" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7-6-9-8" + width="15.968174" + height="14.230948" + x="77.36734" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7-6-9-8-9" + width="15.968174" + height="14.230948" + x="93.33551" + y="181.68814" /><rect + style="font-size:12px;overflow:visible;color-interpolation-filters:sRGB;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#41719c;stroke-width:0.73305672;stroke-linecap:square;stroke-miterlimit:3;stroke-opacity:1" + id="rect4604-7-6-9-8-9-6" + width="15.968174" + height="14.230948" + x="109.30369" + y="181.68814" /><path + style="fill:none;fill-opacity:1;stroke:#41719c;stroke-width:0.72427988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 117.64885,196.01764 0.22164,18.77485 44.6966,-0.0725 -0.22163,-20.00716 16.84434,0.43494" + id="path5030" + inkscape:connector-curvature="0" /></g> </g> -</svg> +<g + transform="translate(190.70887,-0.53319281)" + id="g68-0"><title + id="title16-2">Page-1</title><g + id="shape18-1-4" + transform="matrix(1,0,0,0.57815109,0.749889,-0.11722686)"><title + id="title18-4">Rounded Rectangle.12</title><desc + id="desc20-6">Crypto Symmetric Session</desc><path + inkscape:connector-curvature="0" + d="m 6.78,202.33 h 141.36 a 6.77735,6.77735 -180 0 0 6.77,-6.77 V 8.28 A 6.77735,6.77735 -180 0 0 148.14,1.5 H 6.78 A 6.77735,6.77735 -180 0 0 0,8.28 v 187.28 a 6.77735,6.77735 -180 0 0 6.78,6.77 z" + class="st1" + id="path22-0" + style="fill:url(#linearGradient189);stroke:#386288;stroke-width:0.75" /><text + x="26.317923" + y="17.335487" + class="st2" + id="text24-5" + style="font-size:14.02988338px;font-family:Calibri;fill:#386288;stroke-width:1.40298378" + transform="scale(0.71276665,1.4029837)">Crypto Driver Private Session</text> + +</g><g + id="shape19-6-5" + transform="matrix(1.022976,0,0,0.71529071,9.1114734,-39.403506)"><title + id="title27-2">Rounded Rectangle.13</title><desc + id="desc29-0">Private Session Data</desc><g + id="shadow19-7-1" + transform="translate(0.345598,1.97279)" + class="st3" + style="visibility:visible"><path + inkscape:connector-curvature="0" + d="m 5.91,202.33 h 123.25 a 5.90925,5.90925 -180 0 0 5.91,-5.9 v -92.78 a 5.90925,5.90925 -180 0 0 -5.91,-5.91 H 5.91 A 5.90925,5.90925 -180 0 0 0,103.65 v 92.78 a 5.90925,5.90925 -180 0 0 5.91,5.9 z" + class="st4" + id="path31-8" + style="fill:#bdd0e9;fill-opacity:0.25;stroke:#bdd0e9;stroke-opacity:0.25;filter:url(#filter_2)" /></g><path + inkscape:connector-curvature="0" + d="m 5.91,202.33 h 123.25 a 5.90925,5.90925 -180 0 0 5.91,-5.9 v -92.78 a 5.90925,5.90925 -180 0 0 -5.91,-5.91 H 5.91 A 5.90925,5.90925 -180 0 0 0,103.65 v 92.78 a 5.90925,5.90925 -180 0 0 5.91,5.9 z" + class="st5" + id="path34-8" + style="fill:#a6b6cd;stroke:#41719c;stroke-width:0.75" /><text + x="34.639763" + y="119.96548" + class="st6" + id="text36-7" + style="font-size:13.15105343px;font-family:Calibri;fill:#41719c;stroke-width:1.31510115" + transform="scale(0.76039781,1.3151011)">Private Session Data</text> + +</g><g + id="shape18-1-4-7" + transform="matrix(1,0,0,0.57815109,0.90591369,163.94402)"><title + id="title18-4-3">Rounded Rectangle.12</title><desc + id="desc20-6-5">Crypto Symmetric Session</desc><path + inkscape:connector-curvature="0" + d="m 6.78,202.33 h 141.36 a 6.77735,6.77735 -180 0 0 6.77,-6.77 V 8.28 A 6.77735,6.77735 -180 0 0 148.14,1.5 H 6.78 A 6.77735,6.77735 -180 0 0 0,8.28 v 187.28 a 6.77735,6.77735 -180 0 0 6.78,6.77 z" + class="st1" + id="path22-0-8" + style="fill:url(#linearGradient189-7);stroke:#386288;stroke-width:0.75" /><text + x="26.317923" + y="17.335487" + class="st2" + id="text24-5-1" + style="font-size:14.02988338px;font-family:Calibri;fill:#386288;stroke-width:1.40298378" + transform="scale(0.71276665,1.4029837)">Crypto Driver Private Session</text> + +</g><g + id="shape19-6-5-1" + transform="matrix(1.022976,0,0,0.71529071,9.2675037,124.65774)"><title + id="title27-2-4">Rounded Rectangle.13</title><desc + id="desc29-0-9">Private Session Data</desc><g + id="shadow19-7-1-8" + transform="translate(0.345598,1.97279)" + class="st3" + style="visibility:visible"><path + inkscape:connector-curvature="0" + d="m 5.91,202.33 h 123.25 a 5.90925,5.90925 -180 0 0 5.91,-5.9 v -92.78 a 5.90925,5.90925 -180 0 0 -5.91,-5.91 H 5.91 A 5.90925,5.90925 -180 0 0 0,103.65 v 92.78 a 5.90925,5.90925 -180 0 0 5.91,5.9 z" + class="st4" + id="path31-8-4" + style="fill:#bdd0e9;fill-opacity:0.25;stroke:#bdd0e9;stroke-opacity:0.25;filter:url(#filter_2-3)" /></g><path + inkscape:connector-curvature="0" + d="m 5.91,202.33 h 123.25 a 5.90925,5.90925 -180 0 0 5.91,-5.9 v -92.78 a 5.90925,5.90925 -180 0 0 -5.91,-5.91 H 5.91 A 5.90925,5.90925 -180 0 0 0,103.65 v 92.78 a 5.90925,5.90925 -180 0 0 5.91,5.9 z" + class="st5" + id="path34-8-3" + style="fill:#a6b6cd;stroke:#41719c;stroke-width:0.75" /><text + x="34.639763" + y="119.96548" + class="st6" + id="text36-7-6" + style="font-size:13.15105343px;font-family:Calibri;fill:#41719c;stroke-width:1.31510115" + transform="scale(0.76039781,1.3151011)">Private Session Data</text> + +</g><text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:30.00008774px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75000221" + x="57.540585" + y="145.94679" + id="text5070"><tspan + sodipodi:role="line" + id="tspan5068" + x="57.540585" + y="173.31679" + style="stroke-width:0.75000221"></tspan></text> +<text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.00006485px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.75000221" + x="60.571766" + y="143.21872" + id="text5074"><tspan + sodipodi:role="line" + id="tspan5072" + x="60.571766" + y="143.21872" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.00006485px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.75000221">...</tspan></text> +<path + style="fill:none;stroke:#41719c;stroke-width:0.74499911px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5421)" + d="M -158.57624,71.371238 -157.38,232.04055 -1.1215065,232.19212" + id="path5076" + inkscape:connector-curvature="0" /></g></svg> -- 2.9.4