aboutsummaryrefslogtreecommitdiff
path: root/docs/kernel_network.svg
diff options
context:
space:
mode:
Diffstat (limited to 'docs/kernel_network.svg')
-rw-r--r--docs/kernel_network.svg54
1 files changed, 54 insertions, 0 deletions
diff --git a/docs/kernel_network.svg b/docs/kernel_network.svg
new file mode 100644
index 0000000..8b3b4a3
--- /dev/null
+++ b/docs/kernel_network.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="380px" preserveAspectRatio="none" style="width:874px;height:380px;background:#FEFEFE;" version="1.1" viewBox="0 0 874 380" width="874px" zoomAndPan="magnify"><defs><filter height="300%" id="fflf1tczznf06" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#0091BD" height="365.7891" style="stroke: #A80036; stroke-width: 1.0;" width="89" x="71" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="83" x="74" y="16.0669">Application</text><rect fill="#00C1DE" height="365.7891" style="stroke: #A80036; stroke-width: 1.0;" width="320" x="162" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="96" x="274" y="16.0669">Driver library</text><rect fill="#7D868C" height="365.7891" style="stroke: #A80036; stroke-width: 1.0;" width="320" x="539" y="4"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="95" x="651.5" y="16.0669">Kernel driver</text><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="254.0625" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="110.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="169.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="342.5" y="143.6953"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="126.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="570.5" y="172.8281"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="719.5" y="241.0938"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="115" x2="115" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="198" x2="198" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="270" x2="270" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="347" x2="347" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="436" x2="436" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="575" x2="575" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="647" x2="647" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="724" x2="724" y1="58.4297" y2="331.4922"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="813" x2="813" y1="58.4297" y2="331.4922"/><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="85" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="92" y="43.1279">main()</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="57" x="85" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="92" y="350.4873">main()</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="166" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="173" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="166" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="173" y="350.4873">Device</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="241" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="248" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="241" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="248" y="350.4873">Buffer</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="310" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="317" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="310" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="317" y="350.4873">Network</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="395" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="402" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="395" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="402" y="350.4873">Inference</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="543" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="550" y="43.1279">Device</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="61" x="543" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="550" y="350.4873">Device</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="618" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="625" y="43.1279">Buffer</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="55" x="618" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="41" x="625" y="350.4873">Buffer</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="687" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="694" y="43.1279">Network</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="71" x="687" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="57" x="694" y="350.4873">Network</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="772" y="23.1328"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="779" y="43.1279">Inference</text><rect fill="#FEFECE" filter="url(#fflf1tczznf06)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="79" x="772" y="330.4922"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="65" x="779" y="350.4873">Inference</text><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="254.0625" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="110.5" y="68.4297"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="169.7969" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="342.5" y="143.6953"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="126.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="570.5" y="172.8281"/><rect fill="#FFFFFF" filter="url(#fflf1tczznf06)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="719.5" y="241.0938"/><polygon fill="#FBFB77" filter="url(#fflf1tczznf06)" points="8,73.4297,8,113.4297,220,113.4297,220,83.4297,210,73.4297,8,73.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="210" x2="210" y1="73.4297" y2="83.4297"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="220" x2="210" y1="83.4297" y2="83.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="14" y="90.4966">Create device</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="191" x="14" y="105.6294">Allocate and fill network buffer</text><polygon fill="#A80036" points="330.5,139.6953,340.5,143.6953,330.5,147.6953,334.5,143.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="120.5" x2="336.5" y1="143.6953" y2="143.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="148" x="127.5" y="138.7622">Network(device, buffer)</text><polygon fill="#A80036" points="558.5,168.8281,568.5,172.8281,558.5,176.8281,562.5,172.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="352.5" x2="564.5" y1="172.8281" y2="172.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="199" x="359.5" y="167.895">ioctl(NETWORK_CREATE, buffer)</text><polygon fill="#FBFB77" filter="url(#fflf1tczznf06)" points="583,185.9609,583,210.9609,862,210.9609,862,195.9609,852,185.9609,583,185.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="852" x2="852" y1="185.9609" y2="195.9609"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="862" x2="852" y1="195.9609" y2="195.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="258" x="589" y="203.0278">Create network and return file descriptor</text><polygon fill="#A80036" points="707.5,237.0938,717.5,241.0938,707.5,245.0938,711.5,241.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="580.5" x2="713.5" y1="241.0938" y2="241.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="88" x="587.5" y="236.1606">create(buffer)</text><polygon fill="#A80036" points="591.5,266.2266,581.5,270.2266,591.5,274.2266,587.5,270.2266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="585.5" x2="723.5" y1="270.2266" y2="270.2266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="597.5" y="265.2935">file descriptor</text><polygon fill="#A80036" points="363.5,295.3594,353.5,299.3594,363.5,303.3594,359.5,299.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="357.5" x2="574.5" y1="299.3594" y2="299.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="86" x="369.5" y="294.4263">file descriptor</text><polygon fill="#A80036" points="131.5,309.4922,121.5,313.4922,131.5,317.4922,127.5,313.4922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="125.5" x2="346.5" y1="313.4922" y2="313.4922"/><!--
+@startuml
+
+skinparam backgroundColor #FEFEFE
+
+box "Application" #0091BD
+participant "main()" as main
+end box
+
+box "Driver library" #00C1DE
+participant "Device" as ddev
+participant "Buffer" as dbuf
+participant "Network" as dnet
+participant "Inference" as dinf
+end box
+
+box "Kernel driver" #7D868C
+participant "Device" as kdev
+participant "Buffer" as kbuf
+participant "Network" as knet
+participant "Inference" as kinf
+end box
+
+activate main
+
+note over main
+ Create device
+ Allocate and fill network buffer
+end note
+
+main -> dnet++: Network(device, buffer)
+ dnet -> kdev++: ioctl(NETWORK_CREATE, buffer)
+ note over knet
+ Create network and return file descriptor
+ end note
+
+ kdev -> knet++: create(buffer)
+ return file descriptor
+ return file descriptor
+return
+
+@enduml
+
+PlantUML version 1.2017.15(Mon Jul 03 18:45:34 CEST 2017)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 11.0.11+9-Ubuntu-0ubuntu2.18.04
+Operating System: Linux
+OS Version: 5.4.0-73-generic
+Default Encoding: UTF-8
+Language: en
+Country: US
+--></g></svg> \ No newline at end of file