Hi,
Unfortunately this is still a little broken around both GRASP objectives,
in a way that needs to be fixed:
> 4.1.1. Proxy Grasp announcements
>
> A proxy uses the GRASP M_FLOOD mechanism to announce itself. The
> pledge SHOULD listen for messages of these form. This announcement
> can be within the same message as the ACP announcement detailed in
> [I-D.ietf-anima-autonomic-control-plane].
>
>
> proxy-objective = ["AN_Proxy", [ O_IPv6_LOCATOR, ipv6-address,
> transport-proto, port-number ] ]
That's not valid syntax for an objective. Also, in the Flood message you
have the option of associating a locator directly with the flooded
objective, as part of the basic message format. My suggestion:
The objective is defined in fragmentary CDDL as:
registrar-objective = ["AN_Proxy", objective-flags, loop-count, null]
objective-flags = ; as in the GRASP specification
loop-count = 1 ; restricted to link-local use
The objective-flags field is set to indicate synchronization.
The loop-count is set to 1 to limit the scope of flooding
to the local link.
The value field is set to a null value.
In the GRASP Flood message, an IPv6 locator option is
associated with the objective as described in Section 2.8.11
of [I-D.ietf-anima-grasp]. The locator format is
[O_IPv6_LOCATOR, ipv6-address, transport-proto, port-number]
where
> ipv6-address - the v6 LL of the proxy
> transport-proto - 6, for TCP 17 for UDP
> port-number - the TCP or UDP port number to find the proxy
Then there are more problems with this:
> 4.4. Proxy discovery of Registrar
>
> The Registrar SHOULD announce itself so that proxies can find it and
> determine what kind of connections can be terminated.
>
> When the Registrar joins an Autonomic Control Plane
> ([I-D.ietf-anima-autonomic-control-plane]) it MUST respond to GRASP
> ([I-D.ietf-anima-grasp]) M_NEG_SYN message.
There is no such thing as M_NEG_SYN. Anyway this is a backwards
way of describing things. I think you should start with something
like:
When the Registrar joins an Autonomic Control Plane
[I-D.ietf-anima-autonomic-control-plane] it MUST be
ready to support the GRASP [I-D.ietf-anima-grasp]
object "AN_registrar" defined below. This is an
objective that supports only discovery; it does not
support synchronization or negotiation. When a proxy
sends a GRASP Discovery (M_DISCOVERY) message seeking
this objective, the Registrar SHOULD respond with a
GRASP Discovery Response (M_RESPONSE) message including
relevant locators as described below.
The objective is defined in fragmentary CDDL as:
registrar-objective = ["AN_join_registrar", objective-flags,
loop-count, null]
objective-flags = ; as in the GRASP specification
loop-count = ; as in the GRASP specification
The objective-flags field is set to indicate discovery.
The loop-count is set to a suitable value to limit the scope of
discovery. A suggested default value is 6.
The value field is set to a null value.
> The registrar responds to discovery messages from the proxy (or GRASP
> caches between them) as follows: (XXX changed from M_DISCOVERY)
>
> objective = ["AN_registrar", F_DISC, 255 ]
Why 255? Do you expect networks to be that big? Discovery
loops will be detected anyway, but I think a much more conservative
value is appropriate.
> discovery-message = [M_NEG_SYN, session-id, initiator, objective]
Nope. M_DISCOVERY is needed. But anyway, what is the point of
replicating bog-standard GRASP here? Possibly in an appendix, but not
main text.
> Figure 6: Registrar Discovery
>
> The response from the registrar (or cache) will be a M_RESPONSE with
> the following parameters:
>
> response-message = [M_RESPONSE, session-id, initiator, ttl,
> (+locator-option // divert-option), ?objective)]
Here an example is more helpful than more cut-and-paste from
GRASP.
> initiator = ACP address of Registrar
Wrong, another argument against redundancy.
See https://tools.ietf.org/html/draft-ietf-anima-grasp-15#section-2.8.5
> locator1 = [O_IPv6_LOCATOR, fd45:1345::6789, 6, 443]
> locator2 = [O_IPv6_LOCATOR, fd45:1345::6789, 17, 5683]
> locator3 = [O_IPv6_LOCATOR, fe80::1234, 41, nil]
OK. This is fine in terms of GRASP syntax, although it's
a slightly special case of implying semantics within the
locators. The only problem is mine: my prototype code can't
do this without enhancement. I'd suggest giving the example
a bit more precisely, something like:
An example M_RESPONSE packet, following the GRASP syntax,
could be as follows:
[M_RESPONSE, session-id, initiator, ttl,
[O_IPv6_LOCATOR, fd45:1345::6789, 6, 443],
[O_IPv6_LOCATOR, fd45:1345::6789, 17, 5683],
[O_IPv6_LOCATOR, fe80::1234, 41, null]]
Also, technically, using proto = 41 extends the formal GRASP syntax.
We could let that slide, holding it in reserve for GRASP 2.0, or
we could at least note that it's an extension.
Regards
Brian
_______________________________________________
Anima mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/anima