Merge remote-tracking branch 'origin/develop' into Dedicated-BWPs
# Conflicts: # openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c # openair2/RRC/NR/MESSAGES/asn1_msg.c # openair2/RRC/NR/rrc_gNB_reconfig.c
@@ -193,6 +193,7 @@ Using the help option of the build script you can get the list of available opti
|
||||
| --UE | maintained and tested in CI | build `lte-uesoftmodem` the LTE UE |
|
||||
| --gNB | maintained and tested in CI | build `nr-softmodem` the 5G gNodeB |
|
||||
| --nrUE | maintained and tested in CI | build `nr-uesoftmodem` the 5G UE |
|
||||
| --arch-native | maintained | build with native architecture optimization |
|
||||
| --usrp-recplay | deprecated | use the USRP configuration parameters to use the record player. |
|
||||
| --build-lib | maintained | build optional shared library(ies), which can then be loaded at run time via command line option. Use the --help option to get the list of supported optional libraries. `all` can be used to build all available optional libraries. |
|
||||
| --UE-conf-nvram | maintained | Specifies the path to the input file used by the conf2uedata utility. defaults to [openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf](../openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf) |
|
||||
|
||||
@@ -1,45 +1,164 @@
|
||||
## Table of Contents ##
|
||||
|
||||
1. [Legacy 1 Bench](#legacy-1-bench)
|
||||
2. [Legacy 2 Bench](#legacy-2-bench)
|
||||
3. [Next Bench for DEV](#next-bench-for-dev)
|
||||
4. [Next Bench for CI](#next-bench-for-ci)
|
||||
5. [Indoor Live Network Bench](#indoor-live-network-bench)
|
||||
6. [Outdoor Live Network Bench](#outdoor-live-network-bench)
|
||||
1. [Machines](#machines)
|
||||
2. [Networked devices](#networked-devices)
|
||||
3. [Testbenches](#testbenches)
|
||||
4. [Pipelines](#pipelines)
|
||||
|
||||
## Machines
|
||||
|
||||
| Machine | IP address | Lockable Resource | Function | Connected devices |
|
||||
| ------------- | --------------- | --------------------- | ------------------ | ----------------------------------------------------- |
|
||||
| asterix | 172.21.16.127 | CI-Asterix-Usage | gNB | 173.21.19.14 |
|
||||
| obelix | 172.21.16.128 | CI-Obelix-Usage | eNB, UE (5G) | 172.21.19.13, X300 (192.168.60.2), B200mini (30C51EB) |
|
||||
| porcepix | 172.21.16.136 | CI-NSA-MiniBench | Executor, EPC, 5GC | -- |
|
||||
| nrmodule2 | 172.21.16.139 | CI-NSA-MiniBench | Quectel | Quectel module |
|
||||
| nepes | 172.21.16.137 | CI-NSA-MiniBench | gNB | B200mini (30C51D4) |
|
||||
| caracal | 172.21.16.132 | CI-Caracal | gNB/phytest | N300 (192.168.10.2) |
|
||||
| idefix | 172.21.16.135 | CI-NSA-MiniBench | Quectel | Quectel module |
|
||||
| amariue | 172.21.16.144 | CI-Amarisoft-UE-Usage | TBD | Amarisoft UE simulator |
|
||||
| bellatrix | 192.168.117.115 | CI-RAN-VM-Deployment | Executor | -- |
|
||||
| nano | 192.168.12.62 | CI-Bench-1-Phones | EPC, adb | 2x COTS (adb) |
|
||||
| hutch | 192.168.12.19 | CI-Bench-1-Phones | eNB (B7) | B200mini (30C5239) |
|
||||
| starsky | 192.168.12.18 | CI-Bench-1-Phones | eNB (B40) | b200mini (30A3E3C) |
|
||||
| carabe | 192.168.12.211 | CI-Bench-2-OAI-Phone | UE 4G (B) | B200mini (30AE8C9) |
|
||||
|
||||
Note: The available resources, and their current usage, is indicated here:
|
||||
- [Lockable resources of jenkins-oai](https://jenkins-oai.eurecom.fr/lockable-resources/):
|
||||
"New" Jenkins, i.e., with RAN-Container-Parent
|
||||
- [Lockable resources of open5glab jenkins](https://open5glab.eurecom.fr:8083/jenkins/lockable-resources/):
|
||||
"Old" Jenkins, i.e., with RAN-CI-Develop
|
||||
|
||||
## Networked devices
|
||||
|
||||
| Type | IP address (mgmt) |
|
||||
| ------------- | ----------------- |
|
||||
| USRP N310 | 172.21.19.14 |
|
||||
| USRP N310 | 172.21.19.13 |
|
||||
|
||||
## Testbenches
|
||||
|
||||
### OTA Testbench
|
||||
|
||||
[Proper image to be followed up. TBD: add antennas/circulators]
|
||||
|
||||
Note: obelix and porcepix are both used in the OTA testbench and the 5G
|
||||
NSA/Faraday Cage testbench!
|
||||
|
||||

|
||||
|
||||
[PDF version](testbenches_doc_resources/5g-ota-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/5g-ota-bench.tex) if you want to modify to reflect your setup
|
||||
|
||||
### 5G NSA/Faraday Cage Testbench
|
||||
|
||||
**Purpose**: Faraday cage 5G tests
|
||||
|
||||
Note: obelix and porcepix are both used in the OTA testbench and the 5G
|
||||
NSA/Faraday Cage testbench!
|
||||
|
||||

|
||||
|
||||
[PDF version](testbenches_doc_resources/5g-nsa-faraday-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/5g-nsa-faraday-bench.tex) if you want to modify to reflect your setup
|
||||
|
||||
### 4G Testbench(es)
|
||||
|
||||
**Purpose**: 4G/LTE testbenches
|
||||
|
||||
|
||||
## Legacy 1 Bench
|
||||

|
||||
|
||||
**Purpose** : FDD Band 7 and Band 13, LTE-M
|
||||
**Note** : Legacy1 and Legacy2 are duplicated so that they can run in parallel, thus avoiding a CI bottleneck
|
||||
**Note** : Faraday Cages 1 and 2 are physically the same cage
|
||||
[PDF version](testbenches_doc_resources/4g-faraday-bench.pdf) | [LaTeX/TikZ version](testbenches_doc_resources/4g-faraday-bench.tex) if you want to modify to reflect your setup
|
||||
|
||||

|
||||
## Pipelines
|
||||
|
||||
## Legacy 2 Bench
|
||||
### [RAN-Container-Parent](https://jenkins-oai.eurecom.fr/job/RAN-Container-Parent/)
|
||||
|
||||
**Purpose** : TDD Band 40, TM2 2xTX 2xRX
|
||||
**Note** : CN can run in a container, could also run on Massive
|
||||
**Purpose**: automatically triggered tests on MR creation or push, from Gitlab
|
||||
Webhook
|
||||
|
||||

|
||||
- [RAN-cppcheck](https://jenkins-oai.eurecom.fr/job/RAN-cppcheck/1664/)
|
||||
- obelix
|
||||
- performs static code analysis, currently not actively enforced
|
||||
- [RAN-gNB-nrUE-MONO-TDD-Band78-N300](https://jenkins-oai.eurecom.fr/job/RAN-gNB-nrUE-MONO-TDD-Band78-N300/)
|
||||
- caracal + N310
|
||||
- pure performance test through phy-test scheduler, see command line for more
|
||||
details
|
||||
- [RAN-L2-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-L2-Sim-Test-5G/)
|
||||
- obelix (gNB, 1x UE, OAI 5GC)
|
||||
- L2simulator: skips physical layer and uses proxy between gNB and UE,
|
||||
currently only ping
|
||||
- [RAN-NSA-B200-Module-LTEBOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX-Container/)
|
||||
- obelix + B200, nepes + B200, idefix + Quectel, porcepix w/ ltebox
|
||||
- basic NSA test, known to be instable
|
||||
- [RAN-PhySim-Cluster](https://jenkins-oai.eurecom.fr/job/RAN-PhySim-Cluster/)
|
||||
- asterix (`Asterix-OC-oaicicd-session` resource), tests in OpenShift Cluster
|
||||
- unitary simulators (`nr_dlsim`, etc.)
|
||||
- [RAN-RF-Sim-Test-4G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-4G/)
|
||||
- obelix (eNB, 1x UE, OAI EPC)
|
||||
- uses RFsimulator, for FDD 5, 10, 20MHz with core, 5MHz noS1
|
||||
- [RAN-RF-Sim-Test-5G](https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-5G/)
|
||||
- obelix (gNB, 2x UE, OAI 5GC)
|
||||
- uses RFsimulator, TDD 40MHz, FDD 40MHz, F1 split
|
||||
- [RAN-RHEL8-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-RHEL8-Image-Builder/)
|
||||
- asterix: RHEL 8 image build using podman
|
||||
- [RAN-Ubuntu18-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/)
|
||||
- obelix: Ubuntu 18 image build using docker
|
||||
|
||||
## Next Bench for DEV
|
||||
### [RAN-CI-NSA-Trigger](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-CI-NSA-Trigger/)
|
||||
|
||||
**Note** : Benetel CI can also run on this bench at night
|
||||
**Purpose**: longer-running over-the-air LTE, NSA, and SA tests, triggered
|
||||
through cron job at midnight
|
||||
|
||||

|
||||
- [RAN-LTE-2x2-Module-OAIEPC](https://jenkins-oai.eurecom.fr/job/RAN-LTE-2x2-Module-OAIEPC/)
|
||||
- obelix + N310, nrmodule2 + Quectel, porcepix w/ Magma EPC
|
||||
- LTE 2x2 test with TM1 and TM2
|
||||
- [RAN-NSA-B200-Module-LTEBOX](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX/)
|
||||
- obelix + B200 (eNB), nepes + B200 (gNB), idefix + Quectel, porcepix w/ ltebox
|
||||
- Note: like [RAN-NSA-B200-Module-LTEBOX-Container](https://jenkins-oai.eurecom.fr/job/RAN-NSA-B200-Module-LTEBOX-Container/) above, but compiled/run from source
|
||||
- [RAN-NSA-2x2-Module-OAIEPC](https://jenkins-oai.eurecom.fr/job/RAN-NSA-2x2-Module-OAIEPC/)
|
||||
- obelix + N310 (eNB), asterix + N310 (gNB), nrmodule2 + Quectel, porcepix w/ Magma EPC
|
||||
- LTE 2x2 and NR 2x2 (non-standalone)
|
||||
- [RAN-SA-Module-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-Module-CN5G/)
|
||||
- asterix + N310 (gNB), nrmodule2 + Quectel, porcepix w/ OAI 5GC
|
||||
- NR 2x2 (standalone)
|
||||
- [RAN-SA-OAIUE-N310-X300-CN5G](https://jenkins-oai.eurecom.fr/job/RAN-SA-OAIUE-N310-X300-CN5G/)
|
||||
- asterix + N310 (gNB), obelix + N310 or X300 (5G UE), porcepix w/ OAI 5GC
|
||||
- OTA test with OAIUE using both N310 and X300
|
||||
- [RAN-SA-AmariS-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-AmariS-CN5G/)
|
||||
- asterix + N310, amariue (1x UE), porcepix w/ OAI 5GC
|
||||
- Amarisoft UE simulator: expected to be increased to more UEs
|
||||
|
||||
### [RAN-CI-develop](https://open5glab.eurecom.fr:8083/jenkins/job/RAN-CI-develop/)
|
||||
|
||||
## Next Bench for CI
|
||||
**Purpose**: automatically triggered tests, mostly 4G, to be phased out and
|
||||
integrated into RAN-Container-Parent
|
||||
|
||||
**Note** : The current test running on Caracal could run on this bench with a N300/N300 setup
|
||||
runs tests:
|
||||
- bellatrix: runs 4G/5G simulators directly (eNB + 1x UE + (opt.) OAI EPC, gNB + 1x UE in "noS1")
|
||||
|
||||

|
||||
|
||||
## Indoor Live Network Bench
|
||||
|
||||

|
||||
|
||||
## Outdoor Live Network Bench
|
||||
|
||||

|
||||
triggers pipelines:
|
||||
- [eNB-CI-F1-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-F1-FDD-Band7-B210/)
|
||||
- hutch + B210, nano w/ ltebox + 2x UE
|
||||
- tests 4G FDD with F1 split, 5MHz, 10MHz, 20MHz. 5MHz stable, rest known to
|
||||
be unstable
|
||||
- [eNB-CI-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-FDD-Band7-B210/)
|
||||
- hutch + B210, nano w/ ltebox + 2x UE
|
||||
- tests T tracer, information through FlexRAN, RRC inactivity timers,
|
||||
inactivity timers + FlexRAN, different bandwidths
|
||||
- [eNB-CI-IF4p5-FDD-Band7-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-IF4p5-FDD-Band7-B210/)
|
||||
- hutch + B210, nano w/ ltebox + 2x UE
|
||||
- tests IF4.5 split over bandwidths 5, 10, 20 MHz in Band 7
|
||||
- [eNB-CI-IF4p5-TDD-Band40-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-IF4p5-TDD-Band40-B210/)
|
||||
- starsky + B210, nano w/ ltebox + 2x UE
|
||||
- tests IF4.5 split over bandwidths 5, 10, 20 MHz in Band 40
|
||||
- [eNB-CI-TDD-Band40-B210](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-CI-TDD-Band40-B210/)
|
||||
- starsky + B210, nano w/ ltebox + 2x UE
|
||||
- T tracer, TM1 over bandwidths 5, 10, 20 MHz in Band 40, default scheduler
|
||||
for 20 MHz
|
||||
- [eNB-UE-CI-MONO-FDD-Band7-B200](https://open5glab.eurecom.fr:8083/jenkins/job/eNB-UE-CI-MONO-FDD-Band7-B200/)
|
||||
- hutch + B210 (eNB), carabe + B210 (4G UE), nano w/ ltebox
|
||||
- tests OAI 4G for 5 MHz/TM1 with both CN and in noS1 model, MBMS; known to
|
||||
be unstable
|
||||
- [UE-CI-FDD-Band20-B200](https://open5glab.eurecom.fr:8083/jenkins/job/UE-CI-FDD-Band20-B200/)
|
||||
- starsky + B210 (sniffer)
|
||||
- Sniff MIB + SIB1 of Orange, SFR
|
||||
|
||||
@@ -50,7 +50,7 @@ At the moment of writing this document interoperability with the following COTS
|
||||
## 1.1 gNB build and configuration
|
||||
To get the code and build the gNB executable:
|
||||
|
||||
### Ubuntu 18.04
|
||||
### Build gNB
|
||||
```bash
|
||||
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
|
||||
git checkout develop
|
||||
@@ -61,42 +61,6 @@ To get the code and build the gNB executable:
|
||||
./build_oai --gNB -w USRP
|
||||
```
|
||||
|
||||
### Ubuntu 20.04
|
||||
```bash
|
||||
# Build UHD from source
|
||||
# https://files.ettus.com/manual/page_build_guide.html
|
||||
sudo apt-get install libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
|
||||
|
||||
git clone https://github.com/EttusResearch/uhd.git
|
||||
cd uhd/host
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
make -j 4
|
||||
make test # This step is optional
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
sudo uhd_images_downloader
|
||||
|
||||
|
||||
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
|
||||
git checkout develop
|
||||
|
||||
# Install dependencies in Ubuntu 20.04
|
||||
cd
|
||||
cd openairinterface5g/
|
||||
source oaienv
|
||||
cd cmake_targets/
|
||||
./install_external_packages.ubuntu20
|
||||
|
||||
# Build OAI gNB
|
||||
cd
|
||||
cd openairinterface5g/
|
||||
source oaienv
|
||||
cd cmake_targets/
|
||||
./build_oai --gNB -w USRP
|
||||
```
|
||||
|
||||
A reference configuration file for the **monolithic** gNB is provided [here](https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/develop/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf).
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 90 KiB |
@@ -0,0 +1,59 @@
|
||||
\documentclass{standalone}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{backgrounds, positioning, shapes.symbols}
|
||||
\usepackage{helvet}
|
||||
\renewcommand*{\rmdefault}{\sfdefault}
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
[
|
||||
font=\footnotesize,
|
||||
faraday/.style={minimum size=3cm, draw, dashed},
|
||||
duplexer/.style={draw,fill=white},
|
||||
]
|
||||
|
||||
\node[faraday, label={[anchor=south west]above left:Faraday cage}] (faraday) {};
|
||||
|
||||
\node[above left=0cm and 2.8cm of faraday, label=above:hutch] (hutch)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\node[right=0.3cm of hutch, label=above:B210] (b210h)
|
||||
{\includegraphics[width=1.2cm]{b210}} edge (hutch);
|
||||
\node[below left=0.35cm of faraday.north east] (anto)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210h) -| node [pos=0.25, duplexer] {B7} (anto);
|
||||
|
||||
\node[below left=0cm and 2.8cm of faraday, label=above:starsky] (starsky)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\node[right=0.3cm of starsky, label=above:B210] (b210s)
|
||||
{\includegraphics[width=1.2cm]{b210}} edge (starsky);
|
||||
\draw (hutch) -- (b210h);
|
||||
\node[above left=0.35cm of faraday.south east] (antn)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210s) -| node [pos=0.35, duplexer] {B40} (antn);
|
||||
\node[below right=-0.2cm and 0.8cm of b210s] (antn2)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210s) -| (antn2);
|
||||
|
||||
\node[left=5cm of faraday, label=above:nano] (nano)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\draw (hutch) -- (nano);
|
||||
\draw (starsky) -- (nano);
|
||||
\node[above right=0.0cm and 0.35cm of faraday.west] (phone1)
|
||||
{\includegraphics[height=0.5cm]{phone}};
|
||||
\node[below right=0.0cm and 0.35cm of faraday.west] (phone2)
|
||||
{\includegraphics[height=0.5cm]{phone}};
|
||||
\draw (nano) -- node[above] {USB/adb} +(5cm,0) |- (phone1);
|
||||
\draw (nano) -- +(5cm,0) |- (phone2);
|
||||
|
||||
\node[right=1.5cm of faraday, label=above:B210] (b210c)
|
||||
{\includegraphics[width=1.2cm]{b210}};
|
||||
\node[left=.5cm of faraday.east] (antc)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210c) -- node [pos=0.35, duplexer] {B7UE} (antc);
|
||||
\node[right=0.7cm of b210c, label=above:carabe] (carabe)
|
||||
{\includegraphics[width=1.2cm]{server}}
|
||||
edge (b210c);
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
|
After Width: | Height: | Size: 87 KiB |
@@ -0,0 +1,55 @@
|
||||
\documentclass{standalone}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{backgrounds, positioning, shapes.symbols}
|
||||
\usepackage{helvet}
|
||||
\renewcommand*{\rmdefault}{\sfdefault}
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
[
|
||||
font=\footnotesize,
|
||||
faraday/.style={minimum size=3cm, draw, dashed},
|
||||
duplexer/.style={draw,fill=white},
|
||||
]
|
||||
|
||||
\node[faraday, label={[anchor=south east]above right:Faraday cage}] (faraday) {};
|
||||
|
||||
\node[above left=0cm and 2.8cm of faraday, label=above:obelix] (obelix)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\node[right=0.3cm of obelix, label=above:B200-mini] (b210o)
|
||||
{\includegraphics[width=1.2cm]{b200-mini}} edge (obelix);
|
||||
\node[below right=0.35cm of faraday.north west] (anto)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210o) -| node [pos=0.2, duplexer] {B7} (anto);
|
||||
|
||||
\node[below left=0cm and 2.8cm of faraday, label=above:nepes] (nepes)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\node[right=0.3cm of nepes, label=above:B200-mini] (b210n)
|
||||
{\includegraphics[width=1.2cm]{b200-mini}} edge (nepes);
|
||||
\draw (obelix) -- (b210o);
|
||||
\node[above right=0.35cm of faraday.south west] (antn)
|
||||
{\includegraphics[width=0.3cm]{antenna}};
|
||||
\draw (b210n) -| node [pos=0.2, duplexer] {B78} (antn);
|
||||
|
||||
\node[left=5cm of faraday, label=above:porcepix] (porcepix)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
\draw (obelix) -- (porcepix);
|
||||
\draw (nepes) -- (porcepix);
|
||||
|
||||
\node[right=1.5cm of faraday, label=above:RM500Q-GL] (quectel)
|
||||
{\includegraphics[height=1.2cm]{quectel}};
|
||||
\node[above left=-0.1cm and 0.2cm of faraday.east] (aq2)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[above=-0.2cm of aq2] (aq1)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[below=-0.2cm of aq2] (aq3)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[below=-0.2cm of aq3]
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[right=1cm of quectel, label=above:idefix] (idefix)
|
||||
{\includegraphics[width=1.2cm]{server}}
|
||||
edge (quectel);
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
|
After Width: | Height: | Size: 88 KiB |
@@ -0,0 +1,63 @@
|
||||
\documentclass{standalone}
|
||||
|
||||
\usepackage{tikz}
|
||||
\usetikzlibrary{backgrounds, positioning, shapes.symbols}
|
||||
\usepackage{helvet}
|
||||
\renewcommand*{\rmdefault}{\sfdefault}
|
||||
|
||||
\begin{document}
|
||||
\begin{tikzpicture}
|
||||
[
|
||||
font=\footnotesize,
|
||||
faraday/.style={minimum size=3cm, draw, dashed},
|
||||
duplexer/.style={draw,fill=white},
|
||||
]
|
||||
|
||||
\node[label=above:porcepix] (porcepix)
|
||||
{\includegraphics[width=1.2cm]{server}};
|
||||
|
||||
\node[above right=1cm and 2cm of porcepix, label=above:asterix] (asterix)
|
||||
{\includegraphics[width=1.2cm]{server}}
|
||||
edge (porcepix);
|
||||
\node[right=0.3cm of asterix, label=above:N310] (n310a)
|
||||
{\includegraphics[width=1.5cm]{n310}} edge (asterix);
|
||||
\node[right=.2cm of n310a, duplexer] (b78o) {B78} edge (n310a);
|
||||
\node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
\node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
|
||||
\node[right=2cm of porcepix, label=above:obelix] (obelix)
|
||||
{\includegraphics[width=1.2cm]{server}}
|
||||
edge (porcepix);
|
||||
\node[above right=-0.5cm and 0.3cm of obelix, label=above:N310] (n310o)
|
||||
{\includegraphics[width=1.5cm]{n310}} edge (obelix);
|
||||
\node[right=.2cm of n310o, duplexer] (b78o) {B40} edge (n310o);
|
||||
\node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
\node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
\node[below right=-0.5cm and 0.3cm of obelix, label=above:X310] (x310o)
|
||||
{\includegraphics[width=1.5cm]{x310}} edge (obelix);
|
||||
\node[right=.2cm of x310o, duplexer] (b78o) {B78} edge (x310o);
|
||||
\node[below right=-0.1cm and 0.35cm of b78o.east] (anto1)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
\node[above right=-0.1cm and 0.35cm of b78o.east] (anto2)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (b78o);
|
||||
|
||||
\node[right=5.0cm of n310o, label=above:RM500Q-GL] (quectel)
|
||||
{\includegraphics[height=1.2cm]{quectel}};
|
||||
\node[above left=-0.1cm and 0.8cm of quectel.west] (aq2)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[above=-0.2cm of aq2] (aq1)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[below=-0.2cm of aq2] (aq3)
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[below=-0.2cm of aq3]
|
||||
{\includegraphics[width=0.3cm]{antenna}} edge (quectel);
|
||||
\node[right=1cm of quectel, label=above:nrmodule2] (nrmodule2)
|
||||
{\includegraphics[width=1.2cm]{server}}
|
||||
edge (quectel);
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{document}
|
||||
|
After Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 248 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 181 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 11 KiB |