802.1 Tools
  • Home
  • Maintenance
    • All items
    • Open items
    • Closed items
    • Items for review
    • Status
  • Meetings
  • Help
  • Log in
Requested revision
Standard:IEEE 802.1Q-2014Clause:B.10
Clause title:SRP (Stream Reservation Protocol)
Rationale for revision
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.
Proposed text
Strike SRP-11 and SRP-12 from the PICS for SRP end station behavior. Further discussion should probably take place to either eliminate the possibility of sending Talker Failed from an end station or to completely specify how a Talker end station uses the Talker Failed attribute. Once that is resolved, replacement PICS item(s) for the actual specified behavior should be added, but there doesn't appear to be enough actual specification to suggest a reasonable replacement right now.
Impact on existing networks
As written, these PICS must be interpreted VERY loosely to constrain end station behavior. Deleting them should have no impact, but it is possible that someone has interpreted them to constrain endpoint behavior and has written an SRP implementation that will behave badly when receiving messages that violate their interpretation. In general, there is not currently a precise-enough specification to prevent Talkers from continuing to advertise more streams than their uplink to a bridge can support. A Talker with a 100Mbit uplink to a bridge with Gigabit-capable ports could potentially advertise multiple streams that each consume the available class-A bandwidth on the 100Mbit link. Once one reservation for such a stream is established, it should be required (but currently is not, as far as I can tell) for a Talker to no longer advertise the other streams as available, since bridges will create reservations for the others as long as their egress bandwidth constraints are not violated. I intended to suggest replacement PICS text to avoid this behavior, which I believed the referenced PICS were intended to prevent, but could not find any text to justify it. To prevent this behavior, an amendment to a clause describing Talker end station behavior could reference 35.2.4.2 and either require Talkers to invoke DEREGISTER_STREAM.request on any outstanding Talker Advertise without an active reservation which would exceed available bandwidth for its SR class or else require them to call REGISTER_STREAM.request to change the attribute_type to Talker Failed on each of them. In the latter case, it would be necessary to specify how the FailureInformation field would be filled out, as end stations have no Bridge ID.
Originator
Name:Levi PearsonEmail:levi.pearson@harman.com
Affiliation:Harman International
Submitted:2014-11-14