Read TIPC Publications with tipc nametable show

An empty result from tipc nametable show can mean two very different things: nothing published, or no working path to TIPC. Mixing those up wastes an afternoon. This read-only command shows the kernel's TIPC publication table and explains each column in it. It does not publish a service, remove a publication or change a bearer.

Allow about ten minutes. You need the iproute2 package and a system where TIPC is configured if you want real rows to appear. The examples use iproute2 6.1.0-1ubuntu6.4, the package version installed on this machine. Other releases can format output differently, so treat the field meanings as stable concepts and the exact spacing as presentation.

1. Confirm the installed command

Start by checking which executable your shell will run and recording the package version:

$ command -v tipc
/usr/sbin/tipc
$ dpkg-query -W -f='${Package} ${Version}\n' iproute2
iproute2 6.1.0-1ubuntu6.4

The command is normally run as an ordinary user. Reading the table is not an administrative change. Do not add sudo automatically: privilege can affect which network namespace and environment you are inspecting, and it does not create a TIPC configuration.

2. Show the current publication table

Run the documented subcommand:

$ tipc nametable show
Type       Lower      Upper      Port Identity          Publication Scope
1000       1          1          1.1                    42          cluster

The sample row is illustrative. A working system with no current publications may print only the heading, while a system without a usable TIPC netlink family will fail instead. The command's exit status is the first useful checkpoint:

$ tipc nametable show > /tmp/tipc-nametable.txt
$ status=$?
$ printf 'exit=%s\n' "$status"
exit=0

Redirecting standard output is safe here because the command only reads state. The temporary file is just a capture for review; it is not a TIPC configuration file. If you use a named file, choose one you do not mind replacing.

3. Read the columns as port-name data

The table describes TIPC publications, which bind a port name to a socket in the TIPC cluster. Read the fields from left to right:

For example, a row with type 1000, lower 10 and upper 12 describes instances 10 through 12 under type 1000. It does not mean that TCP ports 10, 11 and 12 are open. TIPC names and IP transport ports are separate systems.

4. Use JSON when another tool needs the result

The manpage documents -j or --json for JSON output, and -p or --pretty for indented JSON. Put the options anywhere in the command chain. Compact JSON is suitable for a parser:

$ tipc -j nametable show
[{"type":1000,"lower":1,"upper":1,"port": {"node":1,"ref":1},"publication":42,"scope":"cluster"}]

The exact key layout and numeric values depend on the installed iproute2 and the live table. Use pretty output when a human needs to inspect it:

$ tipc -j -p nametable show
[
    {
        "type": 1000,
        "lower": 1,
        "upper": 1,
        "publication": 42,
        "scope": "cluster"
    }
]

Do not build a parser around whitespace from the plain table. If you need machine-readable data, request JSON explicitly and validate the command's exit status before consuming the file.

5. Diagnose an empty or failed result

These outcomes are easy to confuse:

Capture both output streams while preserving the status:

$ tipc nametable show > /tmp/tipc-table.out 2> /tmp/tipc-table.err
$ status=$?
$ printf 'exit=%s\n' "$status"
$ sed -n '1,20p' /tmp/tipc-table.err
exit=255
Unable to get TIPC nl family id (module loaded?)

This is a diagnostic boundary, not a repair command. Check the kernel's TIPC support, the active network namespace and the service's own publication logs before changing anything. Loading modules, enabling TIPC or configuring bearers can affect networking and needs an explicit operational plan. Nothing in nametable show requires a rollback.

6. Check the namespace before comparing hosts

TIPC state is associated with a network namespace. A command run in a container, a service unit or a shell entered with nsenter may not see the same table as a host shell. Record the namespace context alongside the result:

$ readlink /proc/$$/ns/net
net:[4026531840]
$ tipc nametable show
Type       Lower      Upper      Port Identity          Publication Scope

Compare the namespace identifier only with care: it is a clue about context, not a publication count. If two otherwise identical checks disagree, first make sure they run in the same namespace and against the same TIPC cluster. A local publication can also be visible only at node scope, while cluster and zone scopes cover wider domains described by the TIPC configuration.

Done means