# Enable TelAF RPC

Source: [https://docs.qualcomm.com/doc/80-41102-1/topic/enable-telaf-rpc.html](https://docs.qualcomm.com/doc/80-41102-1/topic/enable-telaf-rpc.html)

To enable TelAF RPC, run the following command to compile the TelAF simulation image
            under the TelAF root directory.

    # In Dev PC HOST
    make simulac TELAF_SIMULATION_ENABLE_RPC=yCopy to clipboard

    # In Dev Container
    cat >> simulation/.simulation.build << EOF
    export TELAF_SIMULATION_ENABLE_RPC = y
    EOF
     
    echo "make simula-c" > simulation/workstation/.simula.dev.action.sh
    make simula-xCopy to clipboard

The following steps demonstrate how the TelAF RPC works with two docker containers.

1. Start two docker containers by entering `make simula-upx` (instead of
                    `simula-up`).

        #This command will sequentially open two Docker containers (one master and one slave)
        make simula-upxCopy to clipboard
2. Following the creation of the containers, the user must proceed to configure TelAF
                SOME/IP Gateway Service on the master side. To configure SOME/IP Gateway Service
                (for details, see [TelAF RPC](https://docs.qualcomm.com/doc/80-41102-1/topic/rpc.html)):
    1. Use the network tools (such as `ifconfig`) to obtain the real
                        IP address for the current simulation container.
    2. Fill the IP address to the `unicast` field of the JSON file
                            (/legato/systems/current/appsWriteable/tafSomeipGWSvc/tafSomeipGWSvc.json)
                        and additionally assign `device` as `eth0` and
                            `id` as `0x0101` in the same JSON
                        file.
3. Add a router by running the
                command:

        route add 224.0.0.1 eth0Copy to clipboard
4. Start the TelAF framework in the master container by running the
                command:

        telaf startCopy to clipboard
5. Replicate the same steps performed on the master side to configure SOME/IP Gateway
                Service in the slave container with one exception of entering
                    `0x0102` (instead of `0x0101`) in the
                    `id` field, add the router and then start the TelAF
                framework.
6. Switch to slave container by entering the command:

        slaveCopy to clipboard
7. After configuring SOME/IP Gateway Service in the slave container, return to the
                master container by entering the command:

        exitCopy to clipboard
8. Configure RPC on the master container by creating a
                    taf\_rpc.json file at
                    /legato/systems/current/appsWriteable/tafRpcProxy with the
                following
                configuration:

        {
            "systems" :
            [
                {
                    "id" : "0x101",
                    "name" : "SERVER"
                },
                {
                    "id" : "0x102",
                    "name" : "CLIENT"
                }
            ],
            "rpc_services" :
            [
                {
                    "name" : "printer",
                    "user" : "root",
                    "offer_systems" : [ "SERVER" ]
                }
            ]
        }Copy to clipboard
9. Start the TelAF RPC Proxy service in the master
                container:

        app start tafRpcProxyCopy to clipboard
10. Switch to the slave container by running the command `slave` and then
                create a `taf_rpc.json` file at
                    `/legato/systems/current/appsWriteable/tafRpcProxy` with the same
                configuration as the master, and start the TelAF RPC Proxy in the slave
                container.
11. Start the RpcPrintClent application in the slave
                container:

        app start RpcPrintClientCopy to clipboard
12. Return to the master container from the slave by entering the command
                    `exit` and start the RpcPrintServer
                application:

        app start RpcPrintServerCopy to clipboard
13. Run `logread -f | grep HelloWorld` inside the slave container to
                review the log messages. The user should see the expected log messages as
                follows:

        [TelAF Simulation] (slave@192.168.80.2):~ # logread -f |grep HelloWorld
        Sep  9 07:13:51 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x4'
        Sep  9 07:13:51 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x4'
        Sep  9 07:13:51 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x5'
        Sep  9 07:13:51 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x5'
        Sep  9 07:13:56 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x6'
        Sep  9 07:13:56 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x6'
        Sep  9 07:13:56 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x7'
        Sep  9 07:13:56 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x7'
        Sep  9 07:14:01 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x8'
        Sep  9 07:14:01 simulation user.info TelAF:  INFO | client[336]/printClient T=main | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x8'
        Sep  9 07:14:01 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 56 | Sent request: 'HelloWorld_0x9'
        Sep  9 07:14:01 simulation user.info TelAF:  INFO | client[336]/printClient T=SubThread | client.c TimerHandler() 57 | Received response from system(0x101): 'HelloWorld_0x9Copy to clipboard

**Parent Topic:** [Features supported by simulation](https://docs.qualcomm.com/doc/80-41102-1/topic/features-supported-by-simulation.html)

Last Published: May 12, 2026

[Previous Topic
Enable Managed Connectivity service](https://docs.qualcomm.com/bundle/publicresource/80-41102-1/topics/enable-managed-connectivity-service.md) [Next Topic
Enable Managed Storage service](https://docs.qualcomm.com/bundle/publicresource/80-41102-1/topics/enable_managed_storage_service.md)