TCP ExIDs were introduced in RFC6994, and include both 16-bit and 32-bit values.
However, the first 16-bits must be unique - i.e., the 32-bit value is treated like a unique 16-bit ExID with an additional 16 bits that are matched when used. The additional 16-bit match helps reduce the chance of an ExID occurring accidentally in legacy use of the TCP EXP option, which was defined before RFC6884's definition of ExIDs.
UDP ExIDs are 16-bits because UDP EXP and UEXP options require ExIDs.
All that being said, the question remains as to whether UDP and TCP should share a single registry for ExIDs.
The primary benefit is the ability to use a single ExID in either protocol (when that makes sense) and to avoid assigning the same codepoint for different uses in the two transport protocols (which could simply be confusing).
I hereby propose use of a single, common registry where UDP ExIDs are always just 16 bits. Please post concerns here.
TCP ExIDs were introduced in RFC6994, and include both 16-bit and 32-bit values. However, the first 16-bits must be unique - i.e., the 32-bit value is treated like a unique 16-bit ExID with an additional 16 bits that are matched when used. The additional 16-bit match helps reduce the chance of an ExID occurring accidentally in legacy use of the TCP EXP option, which was defined before RFC6884's definition of ExIDs.
UDP ExIDs are 16-bits because UDP EXP and UEXP options require ExIDs.
All that being said, the question remains as to whether UDP and TCP should share a single registry for ExIDs. The primary benefit is the ability to use a single ExID in either protocol (when that makes sense) and to avoid assigning the same codepoint for different uses in the two transport protocols (which could simply be confusing).
I hereby propose use of a single, common registry where UDP ExIDs are always just 16 bits. Please post concerns here.
Joe