🛰️Zafer Satılmış - Aviora

Linux TCP/IP Stack

Source path: Application/AppZMeterGw/Services/Network/Interfaces/Linux/. This layer is for builds that run on Linux and rely on the operating system’s networking. The Aviora glue typically performs lightweight coordination (init hook, interface naming) while actual addresses and routes may follow OS configuration.

Key Source Files

The split mirrors CycloneTcp: one pair of files for “stack” init (even if minimal on Linux) and one pair for the Ethernet manager that matches your JSON function names.

FileResponsibility
AppLinuxTcpIpStack.h / AppLinuxTcpIpStack.cappLinuxTcpIpStackInit() — called from generated networkServiceInitTCPIPStack().
AppLinuxEthMng.h / AppLinuxEthMng.cEthernet manager: start/close/reconnect/isNetworkReady for the Linux target.

Automatic Generation

When the first use: true stack in JSON is "name": "Linux", the generator emits includes and macros pointing at AppLinuxTcpIpStack.h and AppLinuxEthMng.h (and any PPP rows if you add them later). configFilePath may be null if there is no separate chip-level config header for that product.

networkServiceStartInterfaces() only expands calls for interfaces with use: true. A Linux-only profile with a single active eth0 entry therefore generates a single ETH_APP_MANAGER_START_FUNCTION() call and no PPP lines.

flowchart TB
  subgraph linux["Linux build"]
    LINIT["appLinuxTcpIpStackInit"]
    LETH["appLinuxEthMngStart"]
  end
  CUS["Cus_Network_Config.c"]
  CUS --> LINIT
  CUS --> LETH
              

Example JSON (LinuxGcc-Style)

{
  "use": true,
  "name": "Linux",
  "configFilePath": null,
  "stackInitSourcePath": "Services/Network/Interfaces/Linux/AppLinuxTcpIpStack.h",
  "stackInitFunction": "appLinuxTcpIpStackInit",
  "interfaces": {
    "ethInterfaces": [
      {
        "use": true,
        "ifname": "eth0",
        "ethAppManagerPath": "Services/Network/Interfaces/Linux/AppLinuxEthMng.h",
        "ethAppManagerStartFunction": "appLinuxEthMngStart",
        ...
      }
    ]
  }
}

If gsmInterfaces is empty or every entry has use: false, the generated .c file contains no PPP start calls.