Skip to content
Cody Doucette edited this page Feb 19, 2015 · 26 revisions

Table of Contents

XIP addresses and Wireshark's XIA extension

Why does Wireshark show most destination DAGs with an '!' at the front, and '*' at the edges?

The string format to print out DAGs is documented at Human readable XIP address format. From that page, one reads the following: The prefix "!" indicates that the address is invalid. Any index greater than 35 (i.e. 'z') is represented by '+', and an empty edge by '*'.

The function that tests if an address is valid or not checks many things as one can verify in the source code, for example, that the DAG is a single component, that there is no edge after an empty edge, the DAG is in topological order, etc.

This function assumes that addresses come from userland, so they cannot have chosen edges, and that is the reason most destination addresses in packets on a wire will be invalid. One may want to have a special version of this function for Wireshark, but nobody has worked on it yet.

Once an address is deemed invalid, all edges are printed out, including empty edges, in order to help with debugging cases like "-2**9", that is, an edge after an empty edge.

Why do some edges in XIP addresses refer back to previous nodes of the DAG? Is this a cycle?

This question can arise when considering addresses like the following:

 u4id-0a024702c3d70000000000000000000000000000-21:
 zf-0110000000000000000000000000000000000000-2:
 xdp-007f4e38904e83634acc7e1340ef7665e3f1f57b-210

It appears as if the edges coming out of the last node of the DAG (the XDP) are directed toward the previous nodes, such as 0 (the U4ID), 1 (the zF), or 2 (the XDP itself). However, the last node of the DAG is a sink, meaning that it does not have any outgoing edges. The edges of the sink represent the edges of entry node.

This example can be found on the page An exemplifying demo, which includes a image of the DAG that may help you to understand what the textual representation above is trying to show. More information about the address grammar can be found on the page Human readable XIP address format.

Shouldn't the source address DAG always be the inverse of the destination address DAG?

Why is the XID field 160 bits (20 bytes) long?

How are XIA addresses generated?

Linux XIA

When the routing table is updated, how does the routing cache (the DST table) stay synchronized?

Is there any documentation I can read?

What's the best way to start working with Linux XIA?