Versions Compared

Key

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

This page captures the RDK-B Utopia module, its elements, design and high level description of the utilities involved. This document includes description details of the usage of third party open source utilities as part of Utopia. To understand the internal workings of each of these open source utilities please refer the project links shared alongside the utilities.

...

RDK-B has a layered architecture with layers having logically independent functionalities. Broadly the functionality of the gateway device is implemented through 3 main layers: Utopia, HAL , and CCSP.

The HAL layer abstracts the underlying hardware like MOCA, Wi-Fi, etc. through a standard set of API APIs defined as part of RDK-B HAL for the respective components. This HAL layer is implemented per platform and the rest of the components can be compiled to run on the new platform as iswithout major modifications. CCSP components implement the core of the gateway device functionality like, WiFi, user settings, parental control, reporting and configuration.

Utopia is a sub component within RDK-B that deals with a set of utilities and their initialisation initialization sequence to configure the base functionality of the gateway device.

...

  • Configuring the DHCP Server

  • L2 on board switches

  • Setting up the iptables

  • Process monitorsMonitors

  • Configure the Configuring MultiLan interfaces , create and creating bridges

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

...

  • dhcp_proxy - Utility to modify the Network Processor (NP) bridge and setup a dhcp proxy between dhcp server (WAN) and dhcp client (LAN CPEs)
  • Firewall - Utility which is used to set all the IPv4 and IPv6 rules on device
  • service_routed - Utility to set routes using ip rule for IPv4 and IPv6. This utility is event triggered. 
  • service_wan - Event triggered utility used to bring up the wan services (static and dhcp)
  • utctx - Standalone batch get/set application. Utility named utctx_cmd This provides functionality such as Utopia_Free, Utopia_Init, Utopia_RawGet, Utopia_RawSet. This also has the list of Utopia events.

Utopia also contains some of the Open Source Utilities like brctl, dropbear, ifconfig, iptables, ebtables and so on.

...

  1. Application processor CPU kernel comes up

  2. Initialize GWSDK using a PCD script present in /etc/scripts/gwsdk.pcd

  3. L2 Switch driver initialization completed

  4. RPC management server initialized

  5. Start gw_prov_utopia which will initialise CCSP system configuration through utopia_init.sh.

...

Few scripts that bring up all interface and initialisesinitialize interfaces

service_bridge
./service.d/service_bridge_arm.sh
./service.d/service_bridge/dhcp_link.sh
./service.d/service_bridge.sh
./service.d/service_bridge_puma7.sh

...

Utopia Open source utilities
UtilityDescriptionReference
brctlIt is a tool used to configure Ethernet bridge (Network Bridging)https://linux.die.net/man/8/brctl
vconfigIt allows user to create and remove vlan-devices on a vlan enabled kernel. Vlan-devices are virtual Ethernet devices which represents the virtual lans on the physical lan.https://linux.die.net/man/8/vconfig
dropbearIt is a lightweight SSH2 server designed to be small enough to be used in small memory environments, while still being functional and secure enough.

https://linux.die.net/man/8/dropbear

https://matt.ucc.asn.au/dropbear/dropbear.html

dibblerIt is an implementation of DHCPv6 Server/Clienthttp://klub.com.pl/dhcpv6/
ifconfigUtility used to configure a network interfacehttps://linux.die.net/man/8/ifconfig
iptables
administration
Administration tool for IPv4 packet filtering and NAThttps://linux.die.net/man/8/iptables
ip ruleUtility used to manipulate rules in the routing policy database control the route selection algorithmhttp://man7.org/linux/man-pages/man8/ip-rule.8.html
ip routeUtility used to manipulate routing tableshttp://linux-ip.net/html/tools-ip-route.html
ebtablesIt is an application program used to set up and maintain the tables of rules (inside the Linux kernel) that inspect Ethernet frames. It is analogous to the iptables application, but less complicated, due to the fact that the Ethernet protocol is much simpler than the IP protocol.https://linux.die.net/man/8/ebtables
portmapIt a server that converts RPC program numbers into DARPA protocol port numbers. It must be running in order to make RPC calls.https://linux.die.net/man/8/portmap