doc: add new crypto session information

Modified cryptodev library section in Programmer's Guide,
with the recent changes in the crypto sessions.

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
This commit is contained in:
Pablo de Lara 2017-07-05 06:26:20 +01:00
parent 4451e41d47
commit bb59dac7b3
2 changed files with 399 additions and 74 deletions

View File

@ -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 */
};
@ -432,7 +425,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
@ -443,27 +436,33 @@ 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 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.
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.
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.
**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.
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.
``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);
When a session is no longer used, user must call ``rte_cryptodev_sym_session_clear()``
for each of the crypto devices that are using the session, to free all driver
private session data. Once this is done, session should be freed using
``rte_cryptodev_sym_session_free`` which returns them to their mempool.
Transforms and Transform Chaining

View File

@ -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>

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 16 KiB