Dino,

Comments are in-line

Thanks for the comments. See responses inline.

On Mon, May 30, 2011 at 11:50 PM, Dino Farinacci <[email protected]> wrote:

Alia comments:

What I most want to see in this draft is a clear description of what
needs to implemented and how.  It gives a good survey of the
architectural possibilities and even makes suggestions at the end -
but not quite sufficient to be clear in the details of what needs to
be implemented for interoperability and what is for future
experimentation.

Everything in the spec needs to be implemented. Why would you think
differently?

There are places in the text where the phrasing is very unclear - for just the
first instance, there is the last paragraph in Sec 4:

"There is a possible solution to this problem which reduces the number
  of many-to-one occurrences of (S-EID,G) entries aggregating into a
  single (S-RLOC,G) entry.  If a physical ITR can be assigned multiple
RLOC addresses and these addresses are advertised in mapping database
  entries, then ETRs at receiver sites have more RLOC address options
  and therefore can join different (RLOC,G) entries for each (S-EID,G)
entry joined at the receiver site. It would not scale to have a one-
  to-one relationship between the number of S-EID sources at a source
site and the number of RLOCs assigned to all ITRs at the site, but we
  can reduce the "n" to a smaller number in the "n-to-1" relationship.
  And in turn, reduce the opportunity for data packets to be delivered
  to sites for groups not joined."

This doesn't give a way to force all receiver sites to select the same
(RLOC,G) for a given (S-EID,G) as you replied was necessary to Jesus'
comments.

The above paragraph is showing a tradeoff between one-to-one state between (S-EID,G) and (S-RLOC,G). If you want good trees at the expense of core state, you go with this option. If you want to reduce core state, you use aggregate trees in the core which combine many (S- EID,G) entries into one (S-RLOC,G) entry.

Jesus made a lot of comments, so I don't know how this paragraph relates to which comment.

If you want to make this thread productive so we can proceed, you need to be very detailed in your commentary or there is nothing I can do to decide on how to deal with the comments.

I can go through the draft again for each example - but phrasing of
"it is possible",
"a potential solution", "one approach", etc. do not indicate a
requirement to implement
for interoperability.

I am going to repeat. This draft is experimental. And there are a lot of potential solutions we have not thought about yet. The ones are presented make it obvious and convincing that the currently documented potential solutions should be considered by the implementation, allowing us to leave room for the implementation to create its own solution for experimentation and interoperability.

If you think we have all the answers, and want us to document them, then we would be lieing. We don't want to lie. ;-) And I know you are not asking us to do that.

a) Could you add a definition for uPITR?  It is first used on p.9 in
the mPETR definition and only on p. 22 is it described as
 "(where in unicast it acts as a "Proxy ITR", or an uPITR)"

I do not want to duplicate the definition from the Interworking spec. I will
add a reference though.

Looks good

b) Sec 4, second paragraph: "At this point in time, we don't see a
requirement for different locator-sets, priority, and weight policies
for multicast than we have for unicast."  but there is an M Priority
and M Weight in the [LISP] draft.  Clarification as to why would be
useful... (I know it is to get the RLOCs of the ITRs which shouldn't
be used for unicast traffic.)

I added a sentence.

I don't see a mechanism other than the M Priority to obtain the RLOCs
associated with an ITR - since only ETR RLOCs would normally be
included.

I don't understand the comment. There is one locator-set, and the RLOCs for encapsulating unicast packets to and the RLOCs for sending multicast join
messages to can be a different set within the locator-set.

Ok - let me clarify.  The set of RLOCs in a locator-set, until this
draft, are for the ETR.  For multicast, the set of RLOCs required must

Well, correction, they are for xTRs at the site. And the encoding allows you to list ITRs as well even though you would not use them as targets of encapsulation. You achieve this either by setting the priority to 255 or setting the corresponding R-bit/LSB bit to 0.

be for the ITR. IF the ITR and ETR are different, there must be a way
of telling which RLOCs belong to an ITR and which belong to an ETR.

This is how you encode them in a Map-Reply, as an example of unicast ITRs A and B, and multicast ITRs C and D:

locator-set-count:4

A, up: 1, uw: 50, mp: 255, mw: 0
B, up: 1, uw: 50, mp: 255, mw: 0
C, up: 255, uw: 0, mp: 1, mw: 50
D, up: 255, uw: 0, mp: 1, mw: 50

This describes a site that is doing active-active multihoming for unicast traffic by having ITRs, which received this Map-Reply, to load- split unicast flows across encapsulations to A and B. ITRs do not use C and D because the unicast priority is set to 255.

A and B are not used for unicast Joins since the multicast priority is set to 255.

When ETRs at a receiver site want to join an (EID,G), they will use C and D and load-split different (S-EID,G) entries across C and D in a active-active fashion.

The ONLY way that I can find to do this is from the M Priority and the
Priority fields.  If you intend that RLOCs with a priority=255 are
assumed to be RLOCs associated with ITRs, then that should be clearly
stated.  I certainly assumed not - there can be reasons to have an
inactive RLOC, as I understand it.

Wherever the text says where to send joins and talks about priorities, each occurrence refers to "multicast priority".

And the Basic Overview section says:

   At this point in time, we don't see a requirement for different
   locator-sets, priority, and weight policies for multicast than we
   have for unicast.  However, when traffic engineering policies are
different for unicast versus multicast flows, it will be desirable to use multicast-based priority and weight values in Map-Reply messages.

What would be good to add to the draft is the changes to be made to
information such as the Map-Reply messages.  E.g.
 Set the M Priority for all ETR RLOCs to be 255
 Add the ITR RLOCs and set the Priority to 255 & the M Priority to
 something else.

They are the same locators. The xTR has one locator-set, the RLOCs are used as a destination for unicast packets or for a destination for multicast
joins.

The unicast traffic needs to go to ETRs.  The multicast traffic needs
to go to ITRs.  My understanding is that these can be deployed
separately.  If this is not the case for multicast, then that should
certainly be stated!

There is one locator-set that is shared when but unicast and multicast priority is non-255. Otherwise, some locators are used for unicast- only and others can be used for multicast-only.

c) What happens if the S-EID and S-RLOC collide?  In particular, at

You have to be more specific on what you mean here.

Can an S-EID and an S-RLOC have the same value?  If not, why not?

Yes, they will when a mPETR sends a native join to a non-LISP source multicast site.

the ETR and ITR, it seems useful to specify that the xTR has knowledge
of whether the packet was LISP-encapsulated & forwards it either to
receivers that expect it un-LISP-encapsulated (ETR) or to receivers
that expect it LISP-encapsulated (ITR).

If an S-EID and S-RLOC have the same value, what helps disambiguate them in a received multicast packet is whether the packet was LISP- encapsulated.

A LISP multicast packet is defined to be a UDP packet with a destination port of 4341.

An EID and RLOC can have the same value just like in the unicast scenario.

That is what I initially assumed - but there are places in the drafts
where it is assumed that one can tell an EID from an RLOC without any
additional information or look-ups.  I tried to pull them out in my
comments and mentioned this as a general concern.

Not true. If you have a specific location of this confusion, POINT OUT THE TEXT, and we can try to clarify it.

d) p. 15 end of MSDP:
 "And the choice can be made unilaterally because the ITR at the
 site will determine which namespace the destination peer address is
 out of by looking in the mapping database service."

Is there an assumption in LISP that an EID and an RLOC MUST NOT have
the same value??  I've seen this potentially implied, but not
proscriptively stated.

There is not architectural.

So how can the ITR determine which namespace the destination peer address is
out of by looking in the mapping database service??

I don't understand the question. What is a destination peer address. Please use LISP defined terminology or else we be second guessing each other.


e) p. 22 first paragraph:
 "So the ETR knows to simply propagate the PIM Join/Prune message to
a external-facing interface without converting the (S-EID,G) because
 it is an (S,G) where S is routable and reachable via core routing
 tables."

In [INTWRK], it is clear that an EID may be globally routable.  This
creates a conflict here, where there is an assumption that if an IP
address is globally routable, then it is not in the EID/RLOC mapping
database.

The text says:

 In this case, S-EID is not in the

Farinacci, et al. Expires December 1, 2011 [Page 21] Internet-Draft LISP for Multicast Environments May 2011


  mapping database because the source multicast site is using a
routable address and not an EID prefix address. So the ETR knows to
  simply propagate the PIM Join/Prune message to a external-facing
  interface without converting the (S-EID,G) because it is an (S,G)
  where S is routable and reachable via core routing tables.

So the ETR knows because "there is no mapping database entry and the S-EID
is routable".

But in [INTWRK}, the same IP address can be globally routable AND appear
in the mapping database.

Then it can be reached either way. Not a problem. It is up the ITR to decide to encapsulate to the LISP site or send natively.

Also, how does the ETR know that the S-EID is routable - by getting a negative
Map-Reply?

It assumes it is routable if not in the mapping database.

Statements like that of "is using a routable address and not an EID
prefix address"
without any further hints imply that there isn't overlap of addresses.

This string is in two locations in the spec. And it is here:

   Since the ITR in the source multicast site has never received a
   unicast encapsulated PIM Join/Prune message from any ETR in a
   receiver multicast site, it knows there are no LISP-Multicast
   receiver sites.  Therefore, there is no need for the ITR to
   encapsulate data.  Since it will know a priori (via configuration)
   that its site's EIDs are not routable, it assumes that the multicast
   packets from the source host are sent by a routable address.  That
   is, it is the responsibility of the multicast source host's system
   administrator to ensure that the source host sends multicast traffic
   using a routable source address.  When this happens, the ITR acts
simply as a router and forwards the multicast packet like an ordinary
   multicast router.

And here:

The solution to this problem is the same as when an ITR wants to send
   a unicast packet to a destination site but needs determine if the
   site is LISP capable or not.  When it is not LISP capable, the ITR
does not encapsulate the packet. So for the multicast case, when ETR
   receives a PIM Join/Prune message for (S-EID,G) state, it will do a
   mapping table lookup on S-EID.  In this case, S-EID is not in the



Farinacci, et al.       Expires December 1, 2011               [Page 21]
Internet-Draft       LISP for Multicast Environments            May 2011


   mapping database because the source multicast site is using a
   routable address and not an EID prefix address.  So the ETR knows to
   simply propagate the PIM Join/Prune message to a external-facing
   interface without converting the (S-EID,G) because it is an (S,G)
   where S is routable and reachable via core routing tables.


Does your comment pertain to these paragraphs. I can change the first to "using a routable source address (meaning that it is not in the mapping database system)". Would that suffice?

The second occurrence says "In this case, the S-EID is not in the mapping database ...". So it is clear IMO.

Couldn't a more specific check be done along the lines of:
 if the S-EID is reachable via core routing and
     i) it is not in the mapping database or
     ii) it is in the mapping database, but there are no RLOCs with
         an M Priority other than 255?

f) Text in 9.1.1, 9.1.2 doesn't match the headings well.  For
instance, in 9.1.1, there is discussion of how a LISP source site that
sends to non-LISP or uLISP receiver sites also can send to LISP
receiver sites.

They actually are correct, but the first start out saying how the trees are
built from the receiver side so that text can support the data-flow
description that comes later.

In 9.1.2, maybe renaming it to non-mLISP Receiver Sites would be
clearer?

We stated up from the definition of a non-LISP receiver site. Creating a new term would add to the number of combinations. The spec doesn't need that
extra complexity.

g) In 9.1.4, Mpriority and Mweight are finally mentioned - but as far as I can tell, they are needed earlier and for the pure mLISP to mLISP
case.  Please pull the discussion of this earlier.

Can you be more specific please.

Please look at my comment (b) and further elaboration there.  I think
Mpriority is
needed to find the RLOCs associated with an ITR.

We already covered this and I hope you are satisfied with my response. If not, you need to PLEASE SITE TEXT SO WE CAN CORRECT IT.

Also, this case is discussed in 9.1.1 last paragraph on p. 21 - but
claimed that it is sufficient to look in the mapping database. Could
you please combine these and bring more consistency to the draft?

Combine what? Please be more specific.

How much more specific than the exact sections and paragraphs do you
need?

Point out text please in the email.

h) In 9.1.5, is it possible to make a recommendation (e.g. an ITR
SHOULD be able to send two packets based on what its oif-lists are?

No, we want to leave it up to the implementation.

So both solutions must be implemented (see your response to my first
question), configured, and managed???  Why?  How will there be
interoperable implementations?

Isn't this already the case because the mLISP ITR could have
internal-facing entries in the (S-EID,G) that need to be replicated
without encapsulation and external-facing entries in the (S-RLOC, G)
that need encapsulation?

Yes, but those forwarding rules are up to the multicast routing protocol run
in the site. That is, if your comment is to document this.

So - clarity of understanding what needs to be done and ITR behavior is good. Yes, please document this. As phrased, there's the appearance that an ITR
doesn't normally need to duplicate packets.

I am sorry, I am not going to document PIM-DM, PIM-SM, DVMRP, MOSPF, IGMP, and MLD in this document. If that is your request, it is unreasonable and adds no value and just creates opportunity for complexity, confusion, and errors.

I understand that this isn't ideal because multiple copies of data are
going into the core - but the trees are different there too.

Which trees are different?

The ones referred to in sec 9.1.5:

" 1. Make the LISP ITR in the source multicast site send two packets,
      one that is encapsulated with (S-RLOC,G) to reach LISP receiver
      multicast sites and another that is not encapsulated with
      (S-EID,G) to reach non-LISP and uLISP receiver multicast sites."

We have no choice but to do this. The receiver sites are incompatible.

What I'm looking for is some normative text about what MUST/SHOULD be
supported - even for experimental interoperability.

If there are mPETRs deployed an ITR can use option 2. If not, option 1 is
the only option.

So - why not require option 1 to be implemented? Is it a requirement to support
mPETRs?

Yes.

The second option seems like it comes naturally - if a Join comes for
the (S-RLOC, G), then it is sent the encapsulated packet.

Right, if joins come from the mPETRs.

Regardless of where the join came from...
Otherwise, how does the ITR know that the join is from an mPETR

The joins we are talking about here are native ones, not ECM based joins. So you don't know if they are coming from mPETRs or non-LISP receiver multicast sites.

Dino


Alia

g) p. 21 Sec 9.1.1 end of second paragraph:
"It is important to note that the routable address for the host cannot
 be the same as an RLOC for the site.  Because we want the ITRs to
 process a received PIM Join/Prune message from an external-facing
interface to be propagated inside of the site so the site-part of the
 distribution tree is built."
Is this supposed to be one sentence??

I fixed it up a bit. Thanks.

h) typo: p. 9 mPETR definition, last sentence: "co-loacted" -> co- located

i) typo: p. 23 4th line from bottom: "oins to" -> joins to

j) typo: p.27 first sentence: "MUST not" -> MUST NOT

k) typo: Sec 11 last sentence: "addition to slow" -> "addition due to
slow"

l) [LISP] needs to be Normative - it has the packet formats!

Fixed all these. Thanks.

Thanks,
Dino/Dave/Stig/JohnZ














_______________________________________________
lisp mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/lisp

Reply via email to