A is a finite alphabet of symbols, one of which is a special halting symbol;
P is a set of production rules, assigning some word P(x) to each non-halting symbol x in A (a word is a finite string on A);
The term m-tag system is often used to emphasise the parameter m. Definitions vary somewhat in the literature [1][2][3], the one above (from [3]) perhaps being most-suitable as a computational model: Computation can be defined as finding a solution to a problem from given inputs by means of an algorithm. ...
A halting word is a word that either begins with the halting symbol or whose length is less than m.
A transformation t is defined on the set of non-halting words, such that if x denotes the leftmost symbol of a word S, then t(S) is the result of deleting the leftmost m symbols of S and appending the word P(x) on the right.
A computation by a tag system is a finite sequence of words produced by iterating the transformation t, starting with an initially given word and halting when a halting word is produced. (A computation is not considered to exist unless a halting word is produced in finitely-many iterations.)
For each m > 1, the set of m-tag systems is Turing-complete. In computability theory a programming language or any other logical system is called Turing-complete if it has a computational power equivalent to a universal Turing machine. ...
Note that unlike some alternative definitions of tag systems, the present one is such that the "output" of a computation may be encoded in the final word.
In downstream allocation, the tag that is carried in a packet is generated and bound to a prefix by the switch at the downstream end of the link (with respect to the direction of data flow).
Tag allocation is thus driven by topology (routing), not traffic - it is the existence of a FIB entry that causes tag allocations, not the arrival of data packets.
When a tag switch receives a binding between a multicast tree and a tag from another tag switch, if the other switch is the upstream neighbor (with respect to the multicast tree), the local switch places the tag carried in the binding into the incoming tag component of the TIB entry associated with the tree.