diff options
-rw-r--r-- | 2016/33c3/images/diag.dot | 29 | ||||
-rw-r--r-- | 2016/33c3/images/qmi_services.dot | 27 | ||||
-rw-r--r-- | 2016/33c3/images/qmi_smd_qmuxd.dot | 37 | ||||
-rw-r--r-- | 2016/33c3/images/qualcomm_le.svg | 1068 | ||||
-rw-r--r-- | 2016/cellular_acronym_evolution/765px-UMTS_Channels.svg.png | bin | 0 -> 92338 bytes | |||
-rw-r--r-- | 2016/cellular_acronym_evolution/cellular_acronym_evolution.adoc | 157 | ||||
-rw-r--r-- | 2016/open-compliance-jp/abstract.txt | 21 | ||||
-rw-r--r-- | 2016/open-compliance-jp/bio.txt | 23 | ||||
-rw-r--r-- | 2016/osmocom_gsup/osmocom_gsup.adoc | 47 | ||||
-rw-r--r-- | 2016/path_loss_link_budget/ap_to_client.png | bin | 0 -> 125449 bytes | |||
-rw-r--r-- | 2016/path_loss_link_budget/link_budget.png | bin | 0 -> 114322 bytes | |||
-rw-r--r-- | 2016/path_loss_link_budget/path_loss_link_budget.adoc | 205 | ||||
-rw-r--r-- | 2016/path_loss_link_budget/rf.adoc | 530 |
13 files changed, 2144 insertions, 0 deletions
diff --git a/2016/33c3/images/diag.dot b/2016/33c3/images/diag.dot new file mode 100644 index 0000000..66dcec8 --- /dev/null +++ b/2016/33c3/images/diag.dot @@ -0,0 +1,29 @@ +#!graphviz +digraph G { + graph [ dpi = 50 ]; + rankdir = RL; + + MDSP[ label = "Modem DSP" ]; + + SMD [ label = "Shared Memory Devices" ]; + diagfwd + f_diag + USB + + SMD -> MDSP + subgraph cluster_kernel { + label = "Linux Kenrnel" + diagfwd -> SMD + diagchar -> diagfwd + f_diag -> diagfwd + USB -> f_diag + } + subgraph cluster_userspace { + label = "Linux Userspace" + qmuxd -> diagchar [ label = "/dev/diag" ]; + atfwd_daemon -> qmuxd [ label = "/dev/diagt" ] + QCMAP -> qmuxd [ label = "/dev/diagt" ] + quectel_daemon -> qmuxd [ label = "/dev/diag" ] + } + Host -> USB +} diff --git a/2016/33c3/images/qmi_services.dot b/2016/33c3/images/qmi_services.dot new file mode 100644 index 0000000..7371152 --- /dev/null +++ b/2016/33c3/images/qmi_services.dot @@ -0,0 +1,27 @@ +#!graphviz +digraph G { + graph [ dpi = 50 ]; + rankdir = RL; + + subgraph cluster_mdsp { + label = "Modem CPU" + WDS + DMS + NAS + PBM + QMUX + SHM + + WDS -> QMUX + DMS -> QMUX + NAS -> QMUX + NAS -> QMUX + PBM -> QMUX + QMUX -> SHM + } + SHM -> SMD + subgraph cluster_linux { + label = "Linux CPU" + SMD + } +} diff --git a/2016/33c3/images/qmi_smd_qmuxd.dot b/2016/33c3/images/qmi_smd_qmuxd.dot new file mode 100644 index 0000000..9df36d1 --- /dev/null +++ b/2016/33c3/images/qmi_smd_qmuxd.dot @@ -0,0 +1,37 @@ +#!graphviz +digraph G { + graph [ dpi = 50 ]; + rankdir = RL; + + MDSP[ label = "Modem DSP" ]; + + SMD [ label = "Shared Memory Devices" ]; + frmnet [ label = "f_rmnet USB Gadget" ]; + USB [ label = "USB to Host"]; + qmuxd + atfwd_daemon + quectel_daemon + mbimd + ipth_dme + qti + qxmapp + QCMAP [ label= "QCMAP_ConnectionManager" ]; + + SMD -> MDSP + subgraph cluster_kernel { + label = "Linux Kenrnel" + frmnet -> SMD + USB -> frmnet + } + subgraph cluster_userspace { + label = "Linux Userspace" + qmuxd -> SMD [ label = "/dev/smdccntlN" ]; + atfwd_daemon -> qmuxd [ label = "/var/qmux_connect_socket" ] + QCMAP -> qmuxd [ label = "/var/qmux_connect_socket" ] + quectel_daemon -> qmuxd [ label = "/var/qmux_connect_socket" ] + mbimd -> qmuxd [ label = "/var/qmux_connect_socket" ] + ipth_dme -> qmuxd [ label = "/var/qmux_connect_socket" ] + qti -> qmuxd [ label = "/var/qmux_connect_socket" ] + qxmapp -> qmuxd [ label = "/var/qmux_connect_socket" ] + } +} diff --git a/2016/33c3/images/qualcomm_le.svg b/2016/33c3/images/qualcomm_le.svg new file mode 100644 index 0000000..051cd7a --- /dev/null +++ b/2016/33c3/images/qualcomm_le.svg @@ -0,0 +1,1068 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="210mm" + height="297mm" + viewBox="0 0 744.09448819 1052.3622047" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="qualcomm_le.svg"> + <defs + id="defs4"> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker8075" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path8077" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker7921" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path7923" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7771" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path7773" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7629" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path7631" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7491" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path7493" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker7361" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path7363" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker7235" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path7237" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker7117" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path7119" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker6991" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path6993" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker6877" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6879" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker6771" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path6773" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker6683" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path6685" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker5697" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5699" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5603" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5605" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker5351" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5353" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5281" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5283" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker5215" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5217" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="marker5157" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path5159" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker5103" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5105" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="marker5057" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart" + inkscape:collect="always"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path5059" /> + </marker> + <marker + inkscape:stockid="Arrow1Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lstart" + style="overflow:visible" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path4741" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path4744" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.311357" + inkscape:cx="292.32284" + inkscape:cy="537.96199" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="true" + showguides="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:window-width="1386" + inkscape:window-height="1057" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0"> + <inkscape:grid + type="xygrid" + id="grid3336" /> + </sodipodi:namedview> + <metadata + id="metadata7"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-349.02704" + y="58.84729" + id="text4147" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149" + x="-349.02704" + y="58.84729" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">f_serial</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-349.02704" + y="96.84729" + id="text4147-6" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + x="-349.02704" + y="96.84729" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + id="tspan4169">f_rmnet</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-347.16089" + y="191.41422" + id="text4147-9" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9" + x="-347.16089" + y="191.41422" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">f_serial</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-347.16089" + y="159.41422" + id="text4147-0" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-8" + x="-347.16089" + y="159.41422" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">f_ffs</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-348.16089" + y="130.41422" + id="text4147-1" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + x="-348.16089" + y="130.41422" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + id="tspan4197">f_diag</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="74.165344" + y="273.28345" + id="text4201" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4203" + x="74.165344" + y="273.28345" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.5px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">USB Gadget</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial Bold';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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;" + x="177.16534" + y="680.31494" + id="text4205" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4207" + x="177.16534" + y="680.31494" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-677.42529" + y="392.61597" + id="text4209-3" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + x="-677.42529" + y="392.61597" + id="tspan4217-32" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle">NMEA</tspan></text> + <g + id="g4292"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209" + y="111.66787" + x="-679.93774" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217" + y="111.66787" + x="-679.93774" + sodipodi:role="line">ATCMD</tspan></text> + <rect + y="644.8819" + x="88.58268" + height="70.866142" + width="35.433071" + id="rect4290" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g4379"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-7" + y="182.53401" + x="-680.72144" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-8" + y="182.53401" + x="-680.72144" + sodipodi:role="line">RMNET</tspan></text> + <rect + y="644.8819" + x="159.44882" + height="70.866142" + width="35.433071" + id="rect4297-6" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4297-5" + width="35.433071" + height="70.866142" + x="372.04724" + y="644.8819" /> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4297-2" + width="35.433071" + height="70.866142" + x="265.74802" + y="644.8819" /> + <g + id="g4408"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-0" + y="253.40015" + x="-680.40649" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-3" + y="253.40015" + x="-680.40649" + sodipodi:role="line">DIAG</tspan></text> + <rect + y="644.8819" + x="230.31496" + height="70.866142" + width="35.433071" + id="rect4297-7" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g4374"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-8" + y="217.52029" + x="-680.15747" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-9" + y="217.52029" + x="-680.15747" + sodipodi:role="line">QMI</tspan></text> + <rect + y="644.8819" + x="194.88188" + height="70.866142" + width="35.433071" + id="rect4297-9" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + transform="translate(35.433072,-1.5378937e-5)" + id="g4292-6"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-04" + y="111.66787" + x="-679.93774" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-1" + y="111.66787" + x="-679.93774" + sodipodi:role="line">ATCMD</tspan></text> + <rect + y="644.8819" + x="88.58268" + height="70.866142" + width="35.433071" + id="rect4290-0" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + transform="translate(141.73228,-1.5378937e-5)" + id="g4379-4"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-7-8" + y="182.53401" + x="-680.72144" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-8-7" + y="182.53401" + x="-680.72144" + sodipodi:role="line">RMNET</tspan></text> + <rect + y="644.8819" + x="159.44882" + height="70.866142" + width="35.433071" + id="rect4297-6-0" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + transform="translate(141.73229,-1.5378937e-5)" + id="g4374-7"> + <text + transform="matrix(0,-1,1,0,0,0)" + sodipodi:linespacing="125%" + id="text4209-8-9" + y="217.52029" + x="-680.15747" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan4217-9-3" + y="217.52029" + x="-680.15747" + sodipodi:role="line">QMI</tspan></text> + <rect + y="644.8819" + x="194.88188" + height="70.866142" + width="35.433071" + id="rect4297-9-9" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g4455"> + <rect + y="715.74805" + x="88.58268" + height="35.433071" + width="318.89764" + id="rect4449" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text4451" + y="737.34644" + x="141.823" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + y="737.34644" + x="141.823" + id="tspan4453" + sodipodi:role="line">SMD (Shared Memory Device)</tspan></text> + </g> + <g + transform="translate(-1.2014793e-6,70.866153)" + id="g4455-9"> + <rect + y="715.74805" + x="88.58268" + height="35.433071" + width="318.89764" + id="rect4449-0" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text4451-5" + y="737.34644" + x="141.823" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + y="737.34644" + x="141.823" + id="tspan4453-6" + sodipodi:role="line">SMD (Shared Memory Device)</tspan></text> + </g> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4503" + width="248.03149" + height="301.18109" + x="283.46457" + y="290.55118" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-585.21545" + y="498.97568" + id="text4147-9-7" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9-7" + x="-585.21545" + y="498.97568" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">/dev/nmea</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-584.83563" + y="440.2283" + id="text4147-9-7-6" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9-7-4" + x="-584.83563" + y="440.2283" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">/dev/smdcntl0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-578.16089" + y="300.98114" + id="text4147-9-7-7" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9-7-48" + x="-578.16089" + y="300.98114" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">/dev/diag</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-381.01129" + y="304.11499" + id="text4147-9-7-5" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9-7-8" + x="-381.01129" + y="304.11499" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">/dev/ttyGS0</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="384.10965" + y="391.64212" + id="text4147-9-7-2-62" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4149-9-7-6-8" + x="384.10965" + y="391.64212" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">QMI clients</tspan></text> + <g + id="g4661" + transform="translate(35.433074,124.01574)"> + <text + sodipodi:linespacing="125%" + id="text4147-9-7-2-6" + y="205.75879" + x="380.54749" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + y="205.75879" + x="380.54749" + id="tspan4149-9-7-6-4" + sodipodi:role="line">quec_bridge</tspan></text> + <rect + y="184.25197" + x="372.04724" + height="35.433071" + width="106.29921" + id="rect4619" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g4651" + transform="translate(248.0315,-17.716535)"> + <text + sodipodi:linespacing="125%" + id="text4147-9-7-2" + y="471.60568" + x="152.71712" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + y="471.60568" + x="152.71712" + id="tspan4149-9-7-6" + sodipodi:role="line">qmuxd</tspan></text> + <rect + y="450" + x="141.73228" + height="35.433071" + width="70.866142" + id="rect4621" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + id="g4656" + transform="translate(283.46457,-1.3216274e-5)"> + <text + sodipodi:linespacing="125%" + id="text4147-9-7-2-0" + y="419.84769" + x="26.574053" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'" + y="419.84769" + x="26.574053" + id="tspan4149-9-7-6-6" + sodipodi:role="line">adbd</tspan></text> + <rect + y="396.8504" + x="17.716536" + height="35.433071" + width="53.149605" + id="rect4623" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-583.97375" + y="359.7327" + id="text4147-9-7-7-7" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4149-9-7-48-0" + x="-583.97375" + y="359.7327" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold'">rmnet0</tspan></text> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4668" + width="513.77954" + height="513.77954" + x="35.433071" + y="237.40158" /> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect4670" + width="513.77954" + height="106.29921" + x="35.433071" + y="768.89764" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-873.09625" + y="565.00189" + id="text4674" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4676" + x="-873.09625" + y="565.00189" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">Hexagon</tspan><tspan + sodipodi:role="line" + x="-873.09625" + y="583.75189" + id="tspan4678" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">Modem CPU</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-746.86469" + y="567.11212" + id="text4674-4" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + id="tspan4676-1" + x="-746.86469" + y="567.11212" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">ARM Cortex-A5</tspan><tspan + sodipodi:role="line" + x="-746.86469" + y="585.86212" + id="tspan4678-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">Application CPU</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-365.13431" + y="526.60492" + id="text4674-0" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + x="-365.13431" + y="526.60492" + id="tspan4678-8" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">Userspace</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="-535.41742" + y="52.694736" + id="text4674-0-8" + sodipodi:linespacing="125%" + transform="matrix(0,-1,1,0,0,0)"><tspan + sodipodi:role="line" + x="-535.41742" + y="52.694736" + id="tspan4678-8-5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:Arial">Linux Kernel</tspan></text> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend);marker-start:url(#Arrow1Lstart)" + d="M 389.76378,644.88189 496.06299,591.73228" + id="path4735" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5057);marker-end:url(#marker5103)" + d="m 442.91339,591.73228 -88.58268,53.14961" + id="path5049" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5157);marker-end:url(#marker5215)" + d="m 318.89764,644.88189 35.43307,-53.14961" + id="path5149" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker5281);marker-end:url(#marker5351)" + d="m 248.0315,644.88189 0,-53.14961" + id="path5273" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5697);marker-start:url(#marker5603)" + d="M 88.582677,361.41732 212.59843,644.88189" + id="path6643" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6683);marker-start:url(#marker6877)" + d="M 177.16535,644.88189 88.582677,361.41732" + id="path6675" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker6991);marker-end:url(#marker6771)" + d="M 53.149606,361.41732 141.73228,644.88189" + id="path6983" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7117);marker-end:url(#marker7235)" + d="M 53.149606,361.41732 106.29921,644.88189" + id="path7109" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7361);marker-end:url(#marker7491)" + d="M 248.0315,520.86614 124.01575,361.41732" + id="path7353" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7629);marker-end:url(#marker7771)" + d="m 159.44882,361.41732 124.01575,53.14961" + id="path7621" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker7921);marker-end:url(#marker8075)" + d="m 212.59843,325.98425 70.86614,0" + id="path7913" + inkscape:connector-curvature="0" /> + <rect + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect8229" + width="177.16536" + height="124.01575" + x="35.433071" + y="237.40158" /> + <g + id="g8239"> + <rect + y="520.86615" + x="212.59842" + height="70.866142" + width="70.866142" + id="rect8231" + style="opacity:0.98999999;fill:none;fill-opacity:0.57647059;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text8233" + y="552.20496" + x="248.20728" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;line-height:125%;font-family:'Andale Mono';-inkscape-font-specification:Sans;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:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + y="552.20496" + x="248.20728" + id="tspan8235" + sodipodi:role="line">diag</tspan><tspan + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:15px;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle" + id="tspan8237" + y="570.95496" + x="248.20728" + sodipodi:role="line">fwd</tspan></text> + </g> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 283.46457,414.56693 17.71653,0" + id="path8245" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 496.06299,343.70079 0,159.44882" + id="path8247" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 318.89764,325.98425 88.58267,0" + id="path8249" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 442.91339,396.85039 -17.71654,35.43307" + id="path8251" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 407.48031,467.71654 17.71654,70.86614" + id="path8253" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 425.19685,432.28346 0,-35.43307" + id="path8255" + inkscape:connector-curvature="0" /> + <path + style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 425.19685,432.28346 407.48031,396.85039" + id="path8257" + inkscape:connector-curvature="0" /> + </g> +</svg> diff --git a/2016/cellular_acronym_evolution/765px-UMTS_Channels.svg.png b/2016/cellular_acronym_evolution/765px-UMTS_Channels.svg.png Binary files differnew file mode 100644 index 0000000..4820749 --- /dev/null +++ b/2016/cellular_acronym_evolution/765px-UMTS_Channels.svg.png diff --git a/2016/cellular_acronym_evolution/cellular_acronym_evolution.adoc b/2016/cellular_acronym_evolution/cellular_acronym_evolution.adoc new file mode 100644 index 0000000..bb58fc5 --- /dev/null +++ b/2016/cellular_acronym_evolution/cellular_acronym_evolution.adoc @@ -0,0 +1,157 @@ +Cellular Acronym Evolution +========================== +Harald Welte +:copyright: Harald Welte (Liense: CC-BY-SA) +:backend: slidy +:max-width: 45em + +== Classic GSM + +GSM:: Global System for Mobile Communications (was: Groupe Special Mobile) + +Network is split in + +BSS:: Base Station Subsystem +NSS:: Network Switching Subsystem + +== Classic GSM Networks: Subscriber Side + +ME:: Mobile Equipment +SIM:: Subscriber Identity Module +MS:: Mobile Station (ME + SIM) + +Um:: User interface (mobile) + +== Classic GSM Networks: BSS + +BSS:: Base Station Subsystem + +BTS:: Base Transceiver Station +Abis:: Interface BTS - BSC +BSC:: Base Station Controller +A:: Interface BSC - MSC + +== Classic GSM Networks: NSS + +MSC:: Mobile Switching Center +VLR:: Visitor Location Register +HLR:: Home Location Register +SMSC:: SMS Service Center + +== GPRS extends GSM + +CCU:: Circuit Control Unit +PCU:: Packet Control Unit +Gb:: Interface PCU - SGSN +SGSN:: Serving GPRS Support Node +GGSN:: Gateway GPRS Support Node + +== UMTS + +UMTS:: Univesal Mobile Telephony System +WCDMA:: Wideband Carrier Division Multiple Access + +Network is split in RAN + CN + +RAN:: Radio Access Network +CN:: Core Network + +== UMTS Subscriber Side + +ME:: Mobile Equipment (no change) +UICC:: Univresal Integrated Chip Circuit +USIM:: UMTS SIM (Application on UICC), successor of SIM +UE:: User Equipment (Successor of MS) + +Uu:: User interface, universal. Successor of Um + +== UMTS Radio Access Network (RAN) + +RAN:: Successor of BSS +GERAN:: GPRS/EDGE RAN (legacy part) +UTRAN:: Universal Telephony RAN (UMTS RAN) +NodeB:: Successor of BTS +Iub:: Interface NodeB - RNC (Successor of Abis) +RNC:: Successor of BSC +Iu-CS:: Interface RNC - MSC (Successor of A) +Iu-PS:: Interface RNC - SGSN (Successor of Gb) + +== UMTS Core Netwokr (CN) + +MSC:: Mobile Switching Center +VLR:: Visitor Location Register +HLR:: Home Location Register +SMSC:: SMS Service Center +SGSN:: Serving GPRS Support Node +Gn:: Interface between SGSN and GGSN +GGSN:: Gateway GPRS Support Node + +(no acronym changes) + +== UMTS Release 4 + +The MSC functionality is split between control and user plane; + +MSS:: Mobile Switching Center Server +MGW:: Media GateWay + +== LTE (Long Term Evolution) + +After your network is already universal, what else can happen? It +*evolves*... + +LTE UE:: UserEquipment (no rename) +LTE Uu:: LTE User interface (universal) +E-UTRAN:: Evolved UTRNA (successor to UTRAN) +eNodeB:: Evolved NodeB (successor to NodeB) +S1:: Interface between eNodeB and MME (successor to Iu-PS) + +== LTE (Long Term Evolution) + +MME:: Mobility Management Engine (partial successor to SGSN) +S11:: Interface between MME and S-GW +S-GW:: Serving GateWay (partial successor to SGSN) +S5:: Interface between S-GW and P-GW (successor to Gn) +P-GW:: Packet Data Network GateWay (successor to GGSN) + +(RNC has completely been removed, eNodeBs arrange hand-overs directly +among each other) + +== Radio Interface Protocol Stacks + +[options="header"] +|=== +| GSM | GPRS | UMTS | LTE +| - | SNDCP | PDCP | PDCP +| RR | GRR | RRC | LTE RRC +| LAPD | RLC/MAC | RLC/MAC | LTE RLC/MAC +| Um | Um | Uu | LTE Uu +|=== + +== Radio Interface Logical Channels + +[options="header"] +|=== +| GSM | GPRS | UMTS | LTE +| BCCH | (P)BCC | BCCH | BCCH +| CCCH | (P)CCCH | CCCH | CCCH +| SDCCH | - | DCCH | DCCH +| TCH | - | DTCH | DTCH +| - | PCCH | PCCH | PCCH +|=== + +In GSM, logical channels are directly on top of the physical layer, +while UMTS and LTE introduce complex physica and transport channel +concepts underneath the logical channel. + +== UMTS Physical / Transport / Logical Channels + +image::765px-UMTS_Channels.svg.png[] + +By Timothy Colgan - Own work, CC BY-SA 3.0, +https://commons.wikimedia.org/w/index.php?curid=19454393 + + +== The End + +Questions? diff --git a/2016/open-compliance-jp/abstract.txt b/2016/open-compliance-jp/abstract.txt new file mode 100644 index 0000000..45178ed --- /dev/null +++ b/2016/open-compliance-jp/abstract.txt @@ -0,0 +1,21 @@ +Strategies in practical GPL enforcement + +Enforcement of copyleft licenses like the GNU GPL has always been a +somewhat controversial topic. Some people are not in favor of +enforcement at all (but then, why choose the GPL and not a permissive +license?). Other people have less inhibitions in enforcing the +license. But then this raises the next questions? Enforcement using +which strategy? Enforcement using which methods? The Linux Kernel +developer community has recently re-fueled that debate on the +ksummit-discuss mailing list. + +Ultimately, most projects and developers are looking for the +downstream developers and companies to participate in a collaborative +development model. The copyleft principle is just a legal "hack" to +codify some part of that based on copyright. As a result, license +compliance is not an end in itself, but the very bare legal minimum of +what needs to be done when engaging in (particularly +corporate/commercial) re-use of Free Software. + +This talk will look at the different (GPL) license enforcement +approaches and present their advantages and disadvantages. diff --git a/2016/open-compliance-jp/bio.txt b/2016/open-compliance-jp/bio.txt new file mode 100644 index 0000000..0268a5f --- /dev/null +++ b/2016/open-compliance-jp/bio.txt @@ -0,0 +1,23 @@ +Harald Welte is a data communications freelancer, enthusiast and hacker +who is working with Free Software (and particularly GNU/Linux) +since 1995 His major code contribution to the Linux kernel was as a +core developer of the netfilter/iptables packet filter. + +He has co-started a number of other Free Software and Open Hardware +projects, from RFID to telephony - including the worlds first 100% Open +Free Software based mobile phone OpenMoko. + +Aside from his technical contributions, Harald has been pioneering the legal +enforcement of the GNU GPL license as part of his gpl-violations.org project. +More than 150 inappropriate use of GPL licensed code by commercial companies +have been resolved as part of this effort, both in court and out of court. He +has received the 2007 "FSF Award for the Advancement of Free Software" and the +"2008 Google/O'Reilly Open Source award: Defender of Rights". + +In 2008, Harald started to work on Free Software on the GSM protocol side, both +for passive sniffing and protocol analysis, as well as an actual network-side +GSM stack implementation called OpenBSC, which later developed towards +GPRS, EDGE and UMTS. In 2010, he expanded those efforts by creating +OsmocomBB, a GSM telephony-side baseband processor firmware and +protocol stack. Other projects include OsmocomTETRA, a receive-only +implementation of the ETSI TETRA radio interface. diff --git a/2016/osmocom_gsup/osmocom_gsup.adoc b/2016/osmocom_gsup/osmocom_gsup.adoc new file mode 100644 index 0000000..b6fe3c1 --- /dev/null +++ b/2016/osmocom_gsup/osmocom_gsup.adoc @@ -0,0 +1,47 @@ +Osmocom GSUP Protocol +===================== +Harald Welte +:copyright: Harald Welte (Liense: CC-BY-SA) +:backend: slidy +:max-width: 45em + +== GSUP basics + +* very much simplified protocol for handling procedures betewen *SGSN* and *HLR* +* procedures / primitives similar to those carried by MAP +** without the complexity of ASN.1 +** without the complexity of a TCAP/SCCP protocol stack underneath +** without the nasty segmented MAP due to limited MSU size in SS7 + +== GSUP history + +* originally developed for *SGSN* <-> *HLR* interface +* originally called 'GPRS Subscriber Update Protocol' +* implemented in OsmoSGSN (but no counter-part in Osmocom git repos?) + +== GSUP extension for 3G + +* Iu-PS was added to OsmoSGSN, requiring UMTS AKA +* GSUP authentication triplets extended to quintuples +* GSUP SendAuthInfo extended with RAND (for AKA re-sync) +* *osmo-gsup-hlr* as minimalistic HLR+AUC side implementation + +== GSUP extension circuit-switched + +* HLR must know if request is from CS(MSC) or PS(SGSN) +** introduce OSMO_GSUP_CN_DOMAIN_IE to differentiate CS/PS +* VLR must have ability to inform HLR of AUTH FAIL +** introduce OSMO_GSUP_MSGT_AUTH_FAIL_REPORT + +== Misc GSUP changes in 2016 + +* GSUP protocol definition and message encoder/decoder move to + libosmocore (gprs_gsup_* -> osmo_gsup_* rename) +* Doxygen documentation snippets added +* GSUP documentation moved to asciidoc and into osmo-gsm-manuals.git + +include::gsup.adoc[] + +== The End + +Questions? diff --git a/2016/path_loss_link_budget/ap_to_client.png b/2016/path_loss_link_budget/ap_to_client.png Binary files differnew file mode 100644 index 0000000..1d0d7c9 --- /dev/null +++ b/2016/path_loss_link_budget/ap_to_client.png diff --git a/2016/path_loss_link_budget/link_budget.png b/2016/path_loss_link_budget/link_budget.png Binary files differnew file mode 100644 index 0000000..5712057 --- /dev/null +++ b/2016/path_loss_link_budget/link_budget.png diff --git a/2016/path_loss_link_budget/path_loss_link_budget.adoc b/2016/path_loss_link_budget/path_loss_link_budget.adoc new file mode 100644 index 0000000..ff1b0f2 --- /dev/null +++ b/2016/path_loss_link_budget/path_loss_link_budget.adoc @@ -0,0 +1,205 @@ +Path Loss and Link Budget +========================= +Harald Welte +:copyright: Harald Welte (Liense: CC-BY-SA) +:backend: slidy +:max-width: 45em + +[[rf-path-loss]] +== Path Loss + +A fundamental concept in planning any type of radio communications link +is the concept of 'Path Loss'. Path Loss describes the amount of +signal loss (attenuation) between a receive and a transmitter. + +As GSM operates in frequency duplex on uplink and downlink, there is +correspondingly an 'Uplink Path Loss' from MS to BTS, and a 'Downlink +Path Loss' from BTS to MS. Both need to be considered. + +It is possible to compute the path loss in a theoretical ideal +situation, where transmitter and receiver are in empty space, with no +surfaces anywhere nearby causing reflections, and with no objects or +materials in between them. This is generally called the 'Free Space +Path Loss'. + +[[rf-path-loss]] +== Path Loss + +Estimating the path loss within a given real-world terrain/geography is +a hard problem, and there are no easy solutions. It is impacted, among +other things, by + + * the height of the transmitter and receiver antennas + * whether there is line-of-sight (LOS) or non-line-of-sight (NLOS) + * the geography/terrain in terms of hills, mountains, etc. + * the vegetation in terms of attenuation by foliage + * any type of construction, and if so, the type of materials used in + that construction, the height of the buildings, their distance, etc. + * the frequency (band) used. Lower frequencies generally expose better + NLOS characteristics than higher frequencies. + +The above factors determine on the one hand side the actual attenuation +of the radio wave between transmitter and receiver. On the other +hand, they also determine how many reflections there are on this path, +causing so-called 'Multipath Fading' of the signal. + +== Radio Propagation Models + +Over decades, many different radio propagation models have been designed +by scientists and engineers. They might be based on empirical studies +condensed down into relatively simple models, or they might be based on +ray-tracing in a 3D model of the terrain. + +Several companies have developed (expensive, proprietary) simulation +software that can help with this process in detail. However, the +results of such simulation also depend significantly on the availability +of precise 3D models of the geography/terrain as well as the building +structure in the coverage area. + +In absence of such simulation software and/or precise models, there are +several models that can help, depending on the general terrain: + +== Common Path Loss Models + +[[path-loss-models]] +.List of common path loss models +[options="header",cols="20%,20%,20%,40%"] +|=== +|Type|Sub-Type|Bands|Name +|Terrain|-|850, 900, 1800, 1900|ITU terrain model +|Rural|Foliage|850, 900, 1800, 1900|One woodland terminal model +|City|Urban|850, 900|Okumura-Hata Model for Urban Areas +|City|Suburban|850, 900|Okumura-Hata Model for Suburban Areas +|City|Open|850, 900|Okumura-Hata Model for Open Areas +|City|Urban|1800, 1900|COST-231 Hata Model +|Indoor|-|900, 1800, 1900|ITU model for indoor attenuation +|=== + +In <<path-loss-models>> you can see a list of commonly-used path loss +models. They are typically quite simple equations which only require +certain parameters like the distance of transmitter and receiver as well +as the antenna height, etc. No detailed 3D models of the terrain are +required. + +== RF Link + +image::link_budget.png[] + +[[rf-link-budget]] +== Link Budget + +The link budget consists of the total budget of all elements in the +telecommunication system between BTS and MS (and vice-versa). + +This includes + +* antenna gains on both sides +* coaxial cabling between antenna and receiver/transmitter +* losses in duplexers, splitters, connectors, etc +* gain of any amplifiers (PA, LNA) +* path loss of the radio link between the two antennas + +== Simplified Link Budget Equation + +The simplified link budget equations looks like this: + + Rx Power (dBm) = Tx Power (dBm) + Gains (dB) − Losses (dB) + +Gains is the sum of all gains, including + +* Gain of the transmitter antenna +* Gain of the receiver antenna +* Gain of any PA (transmitter) or LNA (receiver) + +Losses is the sum of all losses, including + +* Loss of any cabling and/or connectors on either side +* Loss of any passive components like duplexers/splitters on either side +* Path Loss of the radio link + +== Link Budget Equation vs. Path Loss + +* Using the Link Budget equation and resolving it for the path loss will + give you an idea of how much path loss on the radio link you can afford + while still having a reliable radio link. + +* Resolving the path loss into a physical distance based on your path + loss model will then give you an idea about the coverage area that + you can expect. + +NOTE:: The Rx Power substituted in the Link budget equation is +determined by the receiver sensitivity. It is customary to add some +some safety margin to cover for fading. + +== RF Link + +image::ap_to_client.png[] + + +== Uplink Link Budget + +[graphviz] +---- +digraph G { + rankdir = LR; + MS -> MSAnt -> Path -> BTSAnt -> Cabling -> Duplexer -> Cable -> BTS; + MSAnt [label="MS Antenna"]; + BTSAnt [label="BTS Antenna"]; +} +---- + +The transmit power of a MS depends on various factors, such as the MS +Power Class, the frequency band and the modulation scheme used. + +[options="header"] +.Typical MS transmit power levels +|=== +|Power Class|Band|Modulation|Power +|4|850 / 900|GMSK|33 dBm (2 W) +|1|1800 / 1900|GMSK|30 dBm (1 W) +|E2|850 / 900|8PSK|27 dBm (0.5 W) +|E2|1800 / 1900|8PSK|26 dBm (0.4 W) +|=== + +The minimum reference sensitivity level of a normal GSM BTS is specified +in 3GPP TS 05.05 and required to be at least -104 dBm. Most modern BTSs +outperform this significantly. + +FIXME: Example calculation (spreadsheet screenshot?) + +== Downlink Link Budget + +[graphviz] +---- +digraph G { + rankdir = LR; + BTS -> Cable -> Duplexer -> Cabling -> BTSAnt -> Path -> MSAnt -> MS; + MSAnt [label="MS Antenna"]; + BTSAnt [label="BTS Antenna"]; +} +---- + +The transmit power of the BTS depends on your BTS model and any possible +external power amplifiers used. + +The minimum reference sensitivity level of a GSM MS is specified in 3GPP +TS 05.05 and can typically be assumed to be about -102 dB. + +FIXME: Example calculation (spreadsheet screenshot?) + + +== Optimization of the Link Budget + +If the coverage area determined by the above procedure is insufficient, +you can try to change some of the parameters, such as + +* increasing transmit power by adding a bigger PA +* increasing antenna gain by using a higher gain antenna +* reducing cable losses by using better / shorter coaxial cables +* increasing the height of your antenna + +include::rf.adoc[] + +== The End + +Questions? diff --git a/2016/path_loss_link_budget/rf.adoc b/2016/path_loss_link_budget/rf.adoc new file mode 100644 index 0000000..c86e7a7 --- /dev/null +++ b/2016/path_loss_link_budget/rf.adoc @@ -0,0 +1,530 @@ +// original version part of osmo-gsm-manuals.git + +== Introduction into RF Electronics + +Setup and Operation of a GSM network is not only about the configuration +and system administration on the network elements and protocol stack, +but also includes the physical radio transmission part. + +Basic understanding about RF (Radio Frequency) Electronics is key to +achieving good performance of the GSM network. + +[[rf-coaxial-cabling]] +=== Coaxial Cabling + +Coaxial cables come in many different shapes, diameters, physical +construction, dielectric materials, and last but not least brands and +types. + +There are many parameters that might be relevant to your particular +installation, starting from mechanical/environmental properties such as +temperature range, UV resilience, water/weatherproofness, flammability, +etc. + +For the subject of this manual, we will not look at those mechanical +properties, but look at the electrical properties instead. + +The prime electrical parameters of a coaxial cable are: + +* its attenuation over frequency and length +* its maximum current/power handling capability +* its propagation velocity (ignored here) +* its screening efficiency (ignored here) + +==== Coaxial Cable Attenuation + +The attenuation of a coaxial cable is given in dB per length, commonly +in 'dB per 100m'. This value changes significantly depending on the +frequency of the signal transmitted via the cable. Cable manufacturers +typically either provide tables with discrete frequency values, or +graphs plotting the attenuation per 100m (x axis) over the frequency (y +axis). + +FIXME: Example. + +So in order to estimate the loss of a coaxial cable, you need to + +. determine the frequency at which you will use the cable, as determined + by the GSM frequency band of your BTS. Make sure you use the highest + frequency that might occur, which is typically the upper end of the + transmit band, see <<gsm-bands>> +. determine the attenuation of your cable per 100m at the given + frequency (check the cable data sheet) +. scale that value by the actual length of the cable + +A real cable always has connectors attached to it, please add some +additional losses for the connectors that are attached. 0.05 dB per +connector is a general rule of thumb for the frequencies used in GSM. + +FIXME: Example computation + +As you can see very easily, the losses incurred in coaxial cables +between your antenna and the BTS can very quickly become significant +factors in your overall link budget (and thus cell coverage). This is +particularly relevant for the uplink power budget. Every dB you loose +in the antenna cable between antenna and the BTS receiver translates +into reduced uplink coverage. + +Using the shortest possible coaxial cabling (e.g. by mounting the BTS +high up on the antenna tower) and using the highest-quality cabling are +the best strategies to optimize + +WARNING: If you plan to assemble the coaxial connectors yourself, please +make sure you ensure to have the right skills for this. Properly +assembling coaxial connectors (whether solder-type or crimp-type) +requires precision tools and strict process as described by the +manufacturer. Any mechanical imprecision of connector assembly will +cause significant extra signal attenuation. + +==== Checking coaxial cables + +If you would like to check the proper operation of a coaxial cable, +there are several possible methods available: + +* The more expensive method would be to use a 'RF Network Analyzer' to + measure the S11/S12 parameters or the VSWR of the cable. +* Another option is to use a TDR (time domain reflectometer) to + determine the VSWR. The TDR method has the added advantage that you + can localize any damage to the cable, as such damage would cause + reflections that can be converted into meters cable length from the + port at which you are testing the cable. Mobile, battery-powered TDR + for field-use in GSM Site installation are available from various + vendors. One commonly used series is the 'Anritsu Site Master'. + + +[[rf-coaxial-connectors]] +=== Coaxial Connectors + +A coaxial connector is a connector specifically designed for mounting to +coaxial cable. It facilitates the removable / detachable connection of +a coaxial cable to a RF device. + +There are many different types of coaxial connectors on the market. + +The most important types of coaxial connectors in the context of GSM +BTSs are: + +* The 'N type' connector +* The 'SMA type' connector. +* The '7/16' type connector + +FIXME: Images + +The above connectors are tightened by a screw-on shell. Each connector +type has a specific designated nominal torque by which the connector +shall be tightened. In case of uncertainty, please ask your connector +supplier for the nominal torque. + +NOTE: Always ensure the proper mechanical condition of your RF +connectors. Don't use RF connectors that are contaminated by dust or +dirt, or which show significant oxidization, bent contacts or the like. +Using such connectors poses significant danger of unwanted signal loss, +and can in some cases even lead to equipment damage (e.g. in case of RF +power at PA output being reflected back into the PA). + + +[[rf-duplexers]] +=== Duplexers + +A GSM BTS (or GSM TRX inside a BTS) typically exposes separate ports for +Rx (Receive) and Tx (Transmit). This is intentionally the case, as +this allows the users to add e.g. additional power amplifiers, filters +or other external components into the signal path. Those components +typically operate on either the receive or the transmit path. + +You could now connect two separate antennas to the two ports (one for +Rx, one for Tx). This is commonly done in indoor installations with +small rubber-type antennas directly attached to the BTS connectors. + +In outdoor installations, you typically (want to) use a single Antenna +for Rx and Tx. This single antenna needs to be connected to the BTS +via a device that is called 'Duplexer'. + +The 'Duplexer' is actually a frequency splitter/combiner, which is +specifically tuned to the uplink and downlink frequencies of the GSM +band in which you operate the BTS. As such, it has one port that passes +only uplink frequencies between the antenna and that port, as well as +another port that passes only downlink frequencies between antenna and +that port. + +.Illustration of the Duplexer functionality +[graphviz] +---- +digraph G { + rankdir = LR; + + BTS -> Duplexer [label="Tx band"]; + Duplexer [shape=box]; + Duplexer -> BTS [label="Rx band"]; + Duplexer -> Antenna [label ="All frequencies",dir=both]; + Antenna [shape=cds]; +} +---- + +WARNING: *The ports of a duplexer are not interchangeable*. Always make +sure that you use the Rx port of the duplexer with the Rx port of the +BTS, and vice-versa for Tx. + + +[[rf-pa]] +=== RF Power Amplifiers + +A RF Power Amplifier (PA) is a device that boosts the transmit power of +your RF signal, the BTS in your case. + +RF power amplifiers come in many different characteristics. Some of the +key characteristics are: + +Frequency range:: + A PA is typically designed for a specific frequency range. Only + signals inside that range will be properly amplified +Gain in dB:: + This tells you how many dB the power amplifier will increase your + signal. `Pout = Pin + Gain` +Maximum Output Power:: + This indicates the maximum absolute output power. For example, if the + maximum output power is 40 dBm, and the gain is 10dBm, then an input + signal of 30dBm will render the maximum output power. An input signal + of 20dBm would subsequently generate only 30dBm of output power. +Efficiency:: + The efficiency determines how much electrical power is consumed for + the given output power. Often expressed as Power Added Efficiency + (PAE). + +WARNING: If you add external power amplifiers to a GSM BTS or any other +transmitter, this will invalidate the regulatory approval of the BTS. +It is your responsibility to ensure that the combination of BTS and PA +still fulfills all regulatory requirements, for example in terms of +out-of-band emissions, spectrum envelope, phase error, linearity, etc! + +[graphviz] +.Addition of a RF Power Amplifier to a GSM BTS Setup +---- +digraph G { + rankdir = LR; + BTS; + PA [label="PA 14dB gain"]; + Duplexer [shape=box]; + + BTS -> PA [label="Tx 23 dBm"]; + PA -> Duplexer [label="Tx 37dBm"]; + Duplexer -> BTS [label="Rx band"]; + Duplexer -> Antenna [dir=both]; + Antenna [shape=cds]; +} +---- + + +=== Antennas + +The Antenna is responsible for converting the electromagnetic waves +between the coaxial cable and the so-called 'air interface' and +vice-versa. The properties of an antenna are always symmetric for both +transmission and reception. + +Antennas come in many different types and shapes. Key characteristics +distinguishing antennas are: + +Antenna Gain:: + Expresses how much more efficient the antenna converts between cable + and air interface. Can be expressed in dB compared to a theoretical + isotropic radiator (dBi) or compared to a dipole antenna (dBd). Gain + usually implies directivity. + +Frequency Band(s):: + Antennas typically have only a relatively narrow band (or multiple + narrow bands at which they radiate efficiently. In general, the + higher the antenna gain, the lower the usable frequency band of the + antenna. + +Directivity:: + Antennas radiate the energy in all three dimensions. + +Mechanical Size:: + Mechanical Size is an important factor depending on how and where the + antenna is mounted. Size also relates to weight and wind-load. + +Wind Load:: + Expresses how much mechanical load the antenna will put on its + support structure (antenna mast). + +Connector Type:: + Your cabling will have to use a compatible connector for the antenna. + Outdoor antennas typically use the 7/16 type connector or an N type + connector. Indoor antennas either N type or SMA type. + +Environmental Rating:: + Indoor antennas cannot be used outdoor, as they do not offer the level + of protection against dust and particularly water / humidity / + corrosion. + +Down-tilt Capability:: + Particularly sector antennas are typically installed with a fixed or + (mechanically / electrically) variable down-tilt in order to limit the + radius/horizon of the antenna footprint and avoid excess interference + with surrounding cells. + +VSWR:: + The Voltage Standing Wave Ratio indicates how well the antenna is + matched to the coaxial cable, and how much of the to-be-transmitted + radio signal is actually converted to radio waves versus reflected + back on the RF cable towards the transmitter. An ideal antenna has a + VSWR of 1 (sometimes written 1:1). Real antennas are typically in the + range of 1.2 to 2. + +Side Lobes:: + A directional antenna never radiates only in one direction but always + has certain side lobes pointing outside of the main direction of the + antenna. The number and strength of side lobes differ from antenna + to antenna model. + +NOTE: Whenever installing antennas it is important to understand that +any metallic or otherwise conductive object in their vicinity will +inevitably alter the antenna performance. This can affect the radiation +pattern, but also de-tune the antenna and shift its frequency band +outside the nominal usable frequency band. It is thus best to mount +antennas as far as practically possible from conductive elements within +their radiation pattern + + +==== Omni-directional Antennas + +Omni-directional antennas are typically thin long dipole antennas covered +with fiberglass. They radiate with equal strength in all directions and +thus result in a more or less circular cell footprint (assuming flat +terrain). The shape of the radiation pattern is a torus (donut) with +the antenna located in the center of that torus. + +Omni-directional antennas come with a variety of gains, typically from 0 +dBd to 3 dBd, 6 dBd and sometimes 9 dBd. This gain is achieved by +compressing the radiation torus in the vertical plane. + +Sometimes, Omni-directional antennas can be obtained with a fixed +down-tilt to limit the cell radius. + + +==== Sector Antennas + +Sector antennas are used in sectorized cell setups. Sector antennas can +have significantly higher gain than omni-directional antennas. + +Instead of mounting a single BTS with an omni-directional antenna to a +given antenna pole, multiple BTSs with each one sector antenna are +mounted to the same pole. This results in an overall larger radius due +to the higher gain of the sector antennas, and also in an overall +capacity increase, as each sector has the same capacity as a single +omni-directional cell. And all that benefit still requires only a +single physical site with antenna pole, power supply, back-haul cabling, +etc. + +Experimentation and simulation has shown that typically the use of three +sectors with antennas of an opening angle of 65 degrees results in the +most optimal combination for GSM networks. If more sectors are being +deployed, there is a lot of overlap between the sectors, and the amount +of hand-overs between the BTSs is increased. + + + +[[rf-lna]] +=== RF Low Noise Amplifier (LNA) + +A RF Low Noise Amplifier (LNA) is a device that amplifies the weak +received signal. In general, LNAs are combined with band filters, to +ensure that only those frequencies within the receive band are +amplified, and out-of-band interferers are filtered out. A duplexer +can already be a sufficient band-filter, depending on its +characteristics. + +The use of a LNA typically only makes sense if you +. have very long and/or lossy coaxial cables from your antenna to the + BTS, and +. can mount the duplexer + LNA close to the antenna, so that the + amplification happens before the long/lossy coaxial line to the BTS + +Key characteristics of a LNA are: + +Frequency range:: + A LNA is typically designed for a specific frequency range. Only + signals inside that range will be properly amplified +Gain in dB:: + This tells you how many dB the low noise amplifier will increase your + signal. `Pout = Pin + Gain` +Maximum Input Power:: + This indicates the maximum RF power at the PA input before saturation. +Noise Figure:: + This indicates how much noise this LNA will add to the signal. This + noise will add to the interference as seen by the receiver. + +[graphviz] +.Addition of a RF Low Noise Amplifier to the GSM BTS Setup +---- +digraph G { + rankdir = LR; + + BTS -> LNA [label="Rx",dir=back]; + LNA -> Duplexer [label="Rx",dir=back]; + BTS -> Duplexer [label="Tx"]; + Duplexer -> Antenna [dir=both]; + + Duplexer [shape=box]; + Antenna [shape=cds]; +} +---- + +[graphviz] +.Addition of a RF LNA + RF PA to the GSM BTS Setup +---- +digraph G { + rankdir = LR; + + subgraph { + rank = same; + PA; + LNA; + } + + BTS -> LNA [label="Rx",dir=back]; + BTS -> PA [label="Tx 23 dBm"]; + LNA -> Duplexer [label="Rx",dir=back]; + PA -> Duplexer [label="Tx 37 dBm"]; + Duplexer -> Antenna [dir=both]; + + PA [label="PA 14dB gain"]; + Duplexer [shape=box]; + Antenna [shape=cds]; +} +---- + +As any LNA will add noise to the signal, it is generally discouraged to +add them to the system. Instead, we recommend you to mount the entire +BTS closer to the antenna, thereby removing the losses created by +lengthy coaxial wire. The power supply lines and Ethernet connection to +the BTS are far less critical when it comes to cable length. + + +== Introduction into GSM Radio Planning + +The main focus of the manual you are reading is to document the +specifics of the Osmocom GSM implementation in terms of configuration, +system administration and monitoring. That's basically all on the +software part. + +However, successful deployment and operation of GSM networks depends to +a large extent on the proper design on the radio frequency (RF) side, +including the right cabling, duplexers, antennas, etc. + +Planning and implementing GSM deployment is a science (or art) in +itself, and in most cases it is best to consult with somebody who has +existing experience in the field. + +There are three parts to this: + +GSM Radio Network Planning:: + This includes an analysis of the coverage area, its terrain/geography, + the selection of the right sites for your BTSs, the antenna height, a + path loss estimate. As a result of that process, it will be clear + what amount of transmit power, antenna gain, cable length/type, etc. + you should use to obtain the intended coverage. +GSM Site Installation:: + This is the execution of what has been determined in the previous + step. The required skills are quite different, as this is about + properly assembling RF cables and connections, duplexers, power + amplifiers, antennas, etc. +Coverage testing:: + This is typically done by driving or walking in the newly-deployed GSM + site, and checking of the coverage is as it was expected. + +NOTE: This chapter can only give you the briefest overview about the +process used, and cannot replace the experience and skill of somebody +with GSM RF planning and site deployment. + +[[rf-radio-net-plan]] +=== GSM Radio Network Planning + +In GSM Radio Network Planning, the number and location of sites as well +as type of required equipment is determined based on the coverage +requirements. + +For the coverage of a single BTS, this is a process that takes into +consideration: + +* the terrain that needs to be covered +* the type of mobile stations to be supported, and particularly the + speed of their movement (residential, pedestrians, trains, highways) +* the possible locations for cell sites, where BTSs and Antennas can be + placed, as well as the possible antenna mounting height +* the equipment choices available, including +** type and capabilities of BTS. The key criteria here is + the downlink transmit power in dBm, and the uplink receive + sensitivity. +** antenna models, including gain, radiation pattern, etc. +** RF cabling, including the key aspect of attenuation per length +** RF duplexers, splitting the transmit and receive path +** power amplifiers (PAs), increasing the transmit power +** low noise amplifiers (LNAs), amplifying the received signal + +For coverage of an actual cellular network consisting of neighboring +cells, this process also must take into consideration aspects of +'frequency planning', which is the allocation of frequencies (ARFCNs) to +the individual cells within the network. As part of that, interference +generated by frequency re-use of other (distant) cells must be taken +into consideration. The details of this would go beyond this very +introductory text. There is plenty of literature on this subject +available. + +[[rf-db]] +=== The Decibel (dB) and Decibel-Milliwatt (dBm) + +RF engineering heavily depends on the Decibel (dB) as a unit to express +attenuation (losses) or amplification (gain) impacted on radio signals. + +The dB is a logarithmic unit, it is used to express the ratio of two +values of physical quantity. You can thus not express an absolute value +in dB, only relative. + +NOTE: *Relative loss* (cable, connector, duplexer, splitter) *or gain* +(amplifiers) are power *is expressed in dB*. + +In order to express an absolute value, you need to use a unit like +'dBm', which is referencing a power of 1 mW (milli-Watt). + +NOTE: *Absolute power* like transmitter output power or receiver input +power *is expressed in dBm*. + +[options="header",cols="15%,15%,70%"] +.Example table of dBm values and their corresponding RF Power +|=== +|dBm|RF Power|Comment +|0|1 mW| +|1|1.26 mW|transmit power of sysmoBTS 1002 when used with `max_power_red 22` +|3|2 mW| +|6|4 mW| +|12|16 mW| +|12|16 mW| +|20|100 mW| +|23|199 mW|Maximum transmit power of indoor sysmoBTS 1002 +|26|398 mW| +|30|1 W|Maximum transmit power of a MS in 1800/1900 MHz band +|33|2 W|Maximum transmit power of a MS in 850/900 MHz band +|37|5 W|Maximum transmit power of 1 TRX in sysmoBTS 2050 +|40|10 W|Maximum transmit power of sysmoBTS 1100 +|=== + +[[rf-gsm-bands]] +=== GSM Frequency Bands + +GSM can operate in a variety of frequency bands. However, +internationally only the following four bands have been deployed in +actual networks: + +[options="header"] +.Table of GSM Frequency Bands +|=== +|Name|Uplink Band|Downlink Band|ARFCN Range +|GSM 850|824 MHz .. 849 MHz|869 MHz .. 894 MHz|128 .. 251 +|E-GSM 900|880 MHz .. 915 MHz|925 MHz .. 960 MHz|0 .. 124, 975 .. 1023 +|DCS 1800|1710 MHz .. 1785 MHz|1805 MHz .. 1880 MHz|512 .. 885 +|PCS 1900|1850 MHz .. 1910 MHz|1930 MHz .. 1990 MHz|512 .. 810 +|=== + + |