Subject: Re: SONET/SDH header issues and proposed resolution (long)

From: Stewart Bryant <[email-masked]>
Date: Tue, 08 Apr 2003 11:45:15 +0100

Good summary Andy

Given that we have surfaced the issue of MPLS payload type
discrimination we should probably run the issue to its natural
conclusion.

However Option (3) has the right ECMP properties, the
byte efficiency properties you are looking for and is
consistent with the other CW's at the necessary level.

If this becomes the chosen option I suggest modifying the
PW arch draft to say :

Preferably use the "Martini" encapsulation.

If there are technical reasons, i.e. the requirements of the
PW, or the need for compatibility with other standards
then keep the first nibble == 0 for ECMP reasons.

If even this is not possible, or there is a need multiplex something
else over the mux label, then use the MPLS PID.

Do I have consensus?

Stewart

Andrew G. Malis wrote:
>  From following the PWE3 WG list, there is a clear consensus that PWs 
> need to take ECMP into account be using the upper nibble as a PID.  So 
> there are a few issues that have to be discussed in order to amend the 
> SONET/SDH draft to conform.
> 
> To review, draft-ietf-pwe3-sonet-01.txt currently has the following 
> packet structure:
> 
> +-----------------------------------+
> |   PSN and Multiplexing Layer      |
> |             Headers               |
> +-----------------------------------+
> |           RTP Header              |
> |           (RFC1889)               |
> +-----------------------------------+
> |           CEP Header              |
> +-----------------------------------+
> |                                   |
> |                                   |
> |           SONET/SDH               |
> |            Fragment               |
> |                                   |
> |                                   |
> +-----------------------------------+
> 
> The first issue is the RTP header, which currently immediately follows 
> the labels.  Note that the RTP header can commonly be compressed out, 
> but when it is used, its first nibble will always be '1000' (version = 
> 2, P = 0, X = 0, as shown in figure 3 in draft-ietf-pwe3-sonet-01.txt).
> 
> The placement of the RTP header prior to the CEP header isn't written in 
> stone, and has been debated on the PWE3 list in the last few days.
> 
> The second issue is the CEP header, which is either 32 or 64 bits, and 
> has the following structure:
> 
> Basic format:
> 
>  0                   1                   2                   3
>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> |0|R|D|N|P| Structure Pointer[0:12] |  Sequence Number[0:13]    |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> Extended Fractional STS-1 format:
> 
>  0                   1                   2                   3
>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> |1|R|D|N|P| Structure Pointer[0:12] |  Sequence Number[0:13]    |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> |E|0|0|0|            Equipped Bit Mask (EBM) [0:27]             |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> Neither of these formats conforms to the ECMP requirement.
> 
> There are some alternatives that can be used to bring the above in 
> compliance with the ECMP requirement.
> 
> 
> 1. Allocate the nibble '1000' to indicate RTP after the labels.
> 
> As has already been noted, IP version 8 has already been assigned by 
> IANA to "The P Internet Protocol".  While this protocol was never widely 
> implemented (was it ever implemented?), I cannot predict with any 
> certainty how easy or hard it would be reassign this value.  I can also 
> imagine arguments outside of the PWE3 WG that RTP should always be 
> preceded by IP and UDP, and should not immediately follow a link layer 
> (treating MPLS as the link layer in this case).  So this is probably a 
> nonstarter.
> 
> 
> 2. Use an MPLS payload identifier.
> 
> This would place George and Stewart's proposed MPLS payload identifier 
> immediately after the labels and before the RTP header:
> 
> +-----------------------------------+
> |   PSN and Multiplexing Layer      |
> |             Headers               |
> +----+------------------------------+
> |0001|    protocol identifier       |
> +----+------------------------------+
> |           RTP Header              |
> |           (RFC1889)               |
> +-----------------------------------+
> |           CEP Header              |
> +-----------------------------------+
> |                                   |
> |                                   |
> |           SONET/SDH               |
> |            Fragment               |
> |                                   |
> |                                   |
> +-----------------------------------+
> 
> The primary problem with this solution is efficiency.  The protocol 
> identifier is actually 28 bits of redundant information, since signaling 
> and/or provisioning have already been used to identify the PW contents.  
> So we're really only using 4 bits to say "this is not IPv4 or IPv6", and 
> the other 28 bits are unnecessary.
> 
> To really illustrate the efficiently problem, recall that the CEP header 
> is currently 4 or 8 octets in length.  In the common case when RTP is 
> unused, this would in effect always be adding 4 octets to the CEP 
> header, increasing it to 8 or 12 octets, with the 12-octet header being 
> used in the more BW-constrained situations, or where you're creating 
> more PWs (SONET VTs).
> 
> 
> 3. Change the headers and the RTP location.
> 
> In this proposal, we would change the packet structure to:
> 
> +-----------------------------------+
> |   PSN and Multiplexing Layer      |
> |             Headers               |
> +-----------------------------------+
> |           CEP Header              |
> +-----------------------------------+
> |           RTP Header              |
> |           (RFC1889)               |
> +-----------------------------------+
> |                                   |
> |                                   |
> |           SONET/SDH               |
> |            Fragment               |
> |                                   |
> |                                   |
> +-----------------------------------+
> 
> and the CEP header would become a constant 8 octets in all cases:
> 
>  0                   1                   2                   3
>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> |0|0|0|0|            Equipped Bit Mask (EBM) [0:27]             |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> |E|R|D|N|P| Structure Pointer[0:12] |  Sequence Number[0:13]    |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> When VTs are not in use, the first word will always be all zeros, and 
> the header length is the same as in option 2.  But when VTs are in use, 
> the header length is 4 octets LESS than in option 2.
> 
> This alternative does not require the allocation of any new PIDs, since 
> we're going to be using 0000 anyway.  And how do we know that this is a 
> SONET header and not the usual other PWE3 header?  The same as always - 
> though PW signaling and/or provisioning.
> 
> The only possible downside to this alternative is that it is less 
> architecturally "pure" than alternative 2, since the RTP header follows 
> the CEP header rather than precedes it.  But that's OK with me!
> 
> Personally, I prefer this alternative.  I would be interested in hearing 
> other opinions.
> 
> Thanks for listening,
> Andy
> 
> _______________________________________________
> pwe3 mailing list
> [email-masked]
> https://www1.ietf.org/mailman/listinfo/pwe3
> 
>

---

From: "Andrew G. Malis" <[email-masked]>
Date: Tue, 08 Apr 2003 07:25:44 -0400

Stewart,

You have consensus from me. :-)

Cheers,
Andy

-------

At 4/8/2003 11:45 AM +0100, Stewart Bryant wrote:

>>the labels.  Note that the RTP header can commonly be compressed out, but 
>>when it is used, its first nibble will always be '1000' (version = 2, P = 
>>0, X = 0, as shown in figure 3 in draft-ietf-pwe3-sonet-01.txt).
>>As has already been noted, IP version 8 has already been assigned by IANA 
>>to "The P Internet Protocol".  While this protocol was never widely 
>>unused, this would in effect always be adding 4 octets to the CEP header, 
>>increasing it to 8 or 12 octets, with the 12-octet header being used in 
>>the more BW-constrained situations, or where you're creating more PWs 
>>(SONET VTs).
>>
>>When VTs are not in use, the first word will always be all zeros, and the 
>>header length is the same as in option 2.  But when VTs are in use, the 
>>header length is 4 octets LESS than in option 2.

---

From: "Ron Cohen" <[email-masked]>
Date: Tue, 8 Apr 2003 15:52:01 +0200

Stewart,

No. There is no consensus. Please see my previous email. 

My vote is for option 2 that Andy described. This is most consistent
with the current SONET/SDH draft and with the proposal you sent earlier
to the list.

Ron

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On 
> Behalf Of Stewart Bryant
> Sent: Tuesday, April 08, 2003 12:45 PM
> To: Andrew G. Malis
> Cc: [email-masked]
> Subject: Re: [PWE3] SONET/SDH header issues and proposed 
> resolution (long)
> 
> 
> Good summary Andy
> 
> discrimination we should probably run the issue to its 
> natural conclusion.
> 
> PW, or the need for compatibility with other standards then 
> keep the first nibble == 0 for ECMP reasons.
> 
> If even this is not possible, or there is a need multiplex 
> something else over the mux label, then use the MPLS PID.
> 
> Do I have consensus?
> 
> Stewart
> 
> Andrew G. Malis wrote:
> > The placement of the RTP header prior to the CEP header 
> isn't written 
> > in