Items SRP-11 and SRP-12 have been copy/pasted from the SRP Bridge
implementation PICS into the SRP End station implementation PICS. They
both refer to bridge behavior, specifically in the phrase "in the event
of insufficient bandwidth or resources through a Bridge", but more
generally they refer to requirements that are only specified in terms of
the MAP behavior for SRP which is not relevant to end stations.
SRP-11 refers to updating the Failure Information Bridge ID and Code
when there are insufficient resources. SRP-12 requires generation of a
Talker Failed when there are insufficient resources. Neither operation
can be construed as a requirement from the text of IEEE 802.1Q-2014
outside of the PICS.
Following is an attempt at an exhaustive list of references where one
might find requirements for such behavior:
35.1.2.1 (which describes Talker end station behavior) notes that a
Talker Failed declaration indicates "An advertisement for a Stream that
is not available to the Listener because of bandwidth constraints or
other limitations somewhere along the path from the Talker."
However, there are no "shall" clauses here regarding end station
bandwidth constraints, and it is not clear from the description whether
Talker Failed is ever generated by the Talker itself or whether this
just refers to MAP in a bridge having changed a Talker Advertise to a
Talker Failed.
35.2.2.8 describes the FirstValue definitions for stream reservation
attributes. It mentions Bridges failing Talker Advertises but does not
mention Talkers declaring Talker Failures.
35.2.2.8.7 describes the FailureInformation field, which is the only
field a Talker Failed attribute contains that a Talker Advertise does
not. Here, the text reads, "At the point where a Talker Advertise
Declaration is transformed into a Talker Failed Declaration, the Bridge
making the transformation adds information that..." There is no
specification for how a Talker end station should fill out the field,
nor how a Talker end station should determine what it should use as a
Bridge ID.
35.2.3.1 states "An SR Station behaving as a Talker will send a Talker
Advertise declaration to inform the network about the characteristics
(35.2.2.8) of the Stream it can provide" and does not mention a SR
Station behaving as a Talker sending a Talker Failed declaration. It
only mentions Talker Failed declarations later, "If any Bridge along the
path from Talker to Listener does not have sufficient bandwidth or
resources available its MSRP MAP function will change the Talker
Advertise declaration to a Talker Failed declaration before forwarding
it."
35.2.3.1.1, however, does provide Declaration Type and
FailureInformation fields, and notes that "The attribute_type (10.2)
parameter of the request shall carry the value of Talker Advertise
Vector Attribute Type (35.2.2.4(a)) or Talker Failed Vector Attribute
Type (35.2.2.4(b)), depending on the Declaration Type."
As this interface is a Talker end station interface, one could infer
from this that a Talker end station is allowed to issue a Talker Failed
declaration. But earlier in this clause, "A Talker application entity
shall issue a REGISTER_STREAM.request to the MSRP Participant to
initiate the advertisement of an available Stream" seems to say that it
is only required to use the API for available Streams; a Talker Failure
from a Talker end station indicates that a stream is not available to
any Listener end station (see 35.1.2.1) so it seems a stretch of
terminology to consider such a stream "available" for the sake of this
requirement.
It is not specifically disallowed for a Talker to declare an unavailable
stream, and we have an interface for doing so, but no guidance for
filling in the FailureInformation nor any requirement to do so. End
station PICS SRP-12 suggests there is a requirement for sending a Talker
Failed in some situation, but there is clearly not one in the document
right now.
35.2.4.3 describes usage of Talker Failed by MAP. Since MAP is a bridge
component, it is not relevant to specifying end station behavior.
35.2.6 describes an encoding behavior that allows an Applicant to change
a Talker Advertise declaration to a Talker Failed declaration (or vice
versa) without first issuing a Leave event for the first attribute.
However, it does not specify what sort of station the Applicant might
be, so it can't be construed to imply anything specifically about end
station behavior, though it does not rule out an end station applicant
from taking advantage of this encoding either.