Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Configuring the DHCP Server

  • L2 on board switches

  • Setting up the iptables

  • Process Monitors

  • Configuring MultiLan interfaces and creating bridges

  • Creating multiple VLans for isolating/securing the traffic across interfaces

High Level Architecture

Gliffy Diagramdrawio
namediagramNameHigh level architecture of utopia module.drawio
pagePinrevision31

Figure 1 - High level architecture of Utopia module

...

As described in the previous section Utopia is launched and initialised through a set of shell scripts. This section details the scripts and the initialisation sequence.

Gliffy Diagramdrawio
namediagramNameutopia initialization sequence diagram.drawio
pagePinrevision21

Figure 2 - Utopia Initialization Sequence Diagram

...

Syscfg_create executable creates shared memory with user configuration data (/nvram/syscfg.db). This is present in the code base at the location /ccsp/utopia/source/syscfg

draw.io Diagram
diagramName
Gliffy Diagram
macroId14087161-8487-4cd1-8398-8d450cd9c843
nameinitialization diag.drawio
pagePinrevision1

Apply_system_defaults executable reads the data from system_defaults file (path: /etc/utopia/system_defaults) and compares with syscfg.db, in case of any data is missing in syscfg, those defaults are written in to shared memory. On start of any module, data is read from the shared memory during initialization.

...

Gw_prov_utopia exe calls Init script. Init script executes all executables present in /etc/utopia/registration.d/ directory. 10_firewall exe is responsible for firewall events and it registers for sysevent callback with service name as firewall. Handler script is firewall_log_handle.sh. If any firewall event occurs sysevent is triggered with firewall-restart event name.

draw.io Diagram
diagramName
Gliffy Diagram
macroIdd5a62b6a-6fd7-4fec-b00d-7e3cad34dcc7
namefirewall initialization process flow.drawio
pagePinrevision1

Firewall Initialization Process

draw.io Diagram
diagramName
Gliffy Diagram
macroId8e3054b1-13be-43bc-92d8-fed3706142b9
namefirewall initialization process 2.drawio
pagePinrevision1

On firewall-restart event service_start() method gets called. Ip4table and Ip6table rules are prepared by reading data from shared memory, written into /tmp/.ipt and /tmp/.ipt_v6 files respectively. Iptable rules are restored using these files.

...

  • syscfg_set() checks if the syscfg value exists, if not allocates memory and add it to the end of the linked list and sets the value.
  • SysCfg_Commit() – calls syscfg_commit().
  • syscfg_commit API updates the persistent memory with the shared memory details.

Gliffy Diagramdrawio
namediagramNameEXAMPLE SET FLOW FOR PC URL 1.drawio
pagePinrevision1

Example set flow for PC URL