On Fri, May 13, 2016 at 12:23 AM, Balasubramanian Manoharan < bala.manoha...@linaro.org> wrote:
> Updates packet marking api documentation to traffic manager user guide > > Signed-off-by: Balasubramanian Manoharan <bala.manoha...@linaro.org> > --- > doc/users-guide/users-guide-tm.adoc | 73 > +++++++++++++++++++++++++++++++++++++ > 1 file changed, 73 insertions(+) > > diff --git a/doc/users-guide/users-guide-tm.adoc > b/doc/users-guide/users-guide-tm.adoc > index 12685b2..0bbbb6c 100644 > --- a/doc/users-guide/users-guide-tm.adoc > +++ b/doc/users-guide/users-guide-tm.adoc > @@ -263,6 +263,79 @@ settings for any TM system, though in most cases a TM > system can (and should) > be created/instantiated with smaller values, since lower values will often > result in faster operation and/or less memory used. > > +==== Packet Marking > + > +Packet Marking API is used to mark the packet based upon the final packet > color > grammar: The Packet Marking API > +assigned to the packet when it reaches the egress node. > +This is an optional feature and if available on the platform is used to > reflect > +the packet color on IPv4/IPv6 DiffServ filed in accordance with RFC 2474. > Since this results in an HTML doc, RFC's should be annotated as hyperlinks, e.g.: https://www.ietf.org/rfc/rfc2474.txt[RFC 2474] > +There are three different packet marking fields supported they are, > +1). Assured forwarding in accordance with RFC 2597, the DSCP is marked to > https://www.ietf.org/rfc/rfc2597.txt[RFC 2597] > +set the packet Drop precedence in accordance with the color, i.e High Drop > +precedence for RED, Medium Drop precedence for YELLOW and leave the DSCP > +unchangesd if the color is GREEN. > Typo: unchanged > +2). Explicit Congestion Notification protocol per RFC 3168, where a router > https://www.ietf.org/rfc/rfc3168.txt[RFC 3168] > +encountering congestion can notifiy it by setting the lower 2 bits in > Typo: notify > +DiffServ field to "11" Congestion Encountered code, which will ultimately > +reduce the transmission rate of the packet sender. > +3). In IEEE 802.1q VLAN tag header contains a DE - Drop Eligibility bit > for > +marking a packet for Downstream switches, and is valid for Ethernet packet > +containing a VLAN tag. > + > +RFC 3168 is only valid for TCP packets whereas RFC 2597 is valid for > IPv4/IPv6 > +traffic. > + > +The values are set per color and hence the implementation may support > these > +parameters only for a specific colors. marking_colors_supported field in > +capabilities structure can be used to check which colors are supported for > +marking. > + > +Vlan Marking. > ===== Vlan Marking [These are sub-sections and should be annotated as such] > + > +This vlan marking is used to enable the drop eligibility on the packet > +based on the packet color. If drop eligibility is enabled then the > +implementation will set the one bit VLAN Drop Eligibility Indicator (DEI) > +field (but only for pkts that already carry a VLAN tag) of a packet based > I'd spell out packets here. The use of the abbreviation should only be for APIs that do so. > +upon the final pkt color assigned to the pkt when it reaches the egress > Again, packet, not pkt here. > +node. When drop_eligible_enabled is false, then the given color has > +no effect on the VLAN fields. See IEEE 802.1q for more details. > Since IEEE docs are protected, best to just link this one to the Wikipedia article on it: See https://en.wikipedia.org/wiki/IEEE_802.1Q[IEEE 802.1q] for more details. > +vlan_marking_supported boolean in capability structure indicates whether > this > `vlan_marking_supported` > +feature is supported by the implementation. > + > +Explicit Congestion Notification Marking. > ===== Explicit Congestion Notification Marking [No period follows subsection title] > + > +The odp_tm_ecn_marking() function allows one to configure the TM > Annotate APIs with backticks `odp_tm_ecn_marking()` to make them monospace font for consistency with the rest of the User Guide. > +egress so that the two bit ECN subfield of the eight bit TOS field of an > +IPv4 pkt OR the eight bit Traffic Class (TC) field of an IPv6 pkt can be > packet, not pkt > +selectively modified based upon the final color assigned to the pkt when > it > packet > +reaches the egress. Note that the IPv4 header checksum will be updated - > +but only if the IPv4 TOS field actually changes as a result of this > +setting or the odp_tm_drop_prec_marking setting. For IPv6, since there is > `odp_tm_drop_prec_marking()` > +no header checksum, nothing needs to be done. If ECN is enabled for a > +particular color then ECN subfield will be set to ECN_CE ie congestion > i.e., (periods are required here. If you want to be grammatically perfect, these latinisms should be italicized and followed by a comma: _i.e.,_ ) > +experienced. > +ecn_marking_supported boolean in capability structure indicates whether > this > `ecn_marking_supported` > +feature is supported by the implementation. > + > +Drop Precedence Marking. > ===== Drop Precedence Marking [No period follows subsection heading] + > +The Drop precedence marking allows one to configure the TM > +egress to support Assured forwarding in accordance with RFC 2597. > +The Drop Precedence bits are contained within the six bit Differentiated > +Services Code Point subfield of the IPv4 TOS field or the IPv6 Traffic > +Class (TC) field. Specifically the Drop Precedence sub-subfield can be > +accessed with a DSCP bit mask of 0x06. When enabled for a given color, > +these two bits will be set to Medium Drop Precedence (value 0x4) if the > +color is ODP_PACKET_YELLOW, set to High Drop Precedence (value 0x6) if > +the color is ODP_PACKET_RED. > + > +Note that the IPv4 header checksum will be updated - but only if the > +IPv4 TOS field actually changes as a result of this setting or the > +odp_tm_ecn_marking setting. For IPv6, since there is no header checksum, > `odp_tm_ecn_marking()` > +nothing else needs to be done. > +drop_prec_marking_supported boolean in capability structure indicates > whether > The `drop_prec_marking_supported` boolean in the capability... > +this feature is supported by the implementation. > + > === Examples > > .Create a tm_node chain for two nodes and associate the scheduler > -- > 1.9.1 > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp