Currently L4 and L7 protocols are mapped to a single Protocol field in Gateway listeners (this is a limitation of the Gateway API that does not have an AppProtocol field). This causes all sorts of problems in STUNner where different L7 protocols can be combined (or will be combined in a later release) with different L4 protocols.
Currently setting the listener protocol to UDP actually means to use "TURN over a UDP transport", TCP means "TURN over TCP", etc. Later, we may want to introduce pure-UDP and pure TCP-listeners (i.e., without TURN), but given the current state of the art there will be no way to distinguish between the two since, for instance, Protocol=UDP may mean either "TURN over UDP" or "pure UDP".
The plan is to introduce more descriptive names for specifying TURN listener protocols as follows:
TURN-UDP to mean "TURN over UDP" (equivalent with the current UDP setting),
TURN-TCP to mean "TURN over TCP" (equivalent with the current TCP setting),
TURN-TLS to mean "TURN over TLS" (equivalent with the current TLS setting),
TURN-DTLS to mean "TURN over DTLS" (equivalent with the current DTLS setting).
Currently these "long protocol names" would be simple aliases to the existing "short names", but in the long run we will deprecate the short names and mandate the long names instead (i.e., we would require TURN-UDP to start a "TURN over UDP" listener, UDP would fall back to a pure-UDP listener).
This issue is tracking the progress on implementing this change.
Currently L4 and L7 protocols are mapped to a single
Protocol
field in Gateway listeners (this is a limitation of the Gateway API that does not have anAppProtocol
field). This causes all sorts of problems in STUNner where different L7 protocols can be combined (or will be combined in a later release) with different L4 protocols.Currently setting the listener protocol to
UDP
actually means to use "TURN over a UDP transport",TCP
means "TURN over TCP", etc. Later, we may want to introduce pure-UDP and pure TCP-listeners (i.e., without TURN), but given the current state of the art there will be no way to distinguish between the two since, for instance,Protocol=UDP
may mean either "TURN over UDP" or "pure UDP".The plan is to introduce more descriptive names for specifying TURN listener protocols as follows:
TURN-UDP
to mean "TURN over UDP" (equivalent with the currentUDP
setting),TURN-TCP
to mean "TURN over TCP" (equivalent with the currentTCP
setting),TURN-TLS
to mean "TURN over TLS" (equivalent with the currentTLS
setting),TURN-DTLS
to mean "TURN over DTLS" (equivalent with the currentDTLS
setting).Currently these "long protocol names" would be simple aliases to the existing "short names", but in the long run we will deprecate the short names and mandate the long names instead (i.e., we would require
TURN-UDP
to start a "TURN over UDP" listener,UDP
would fall back to a pure-UDP listener).This issue is tracking the progress on implementing this change.