[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
API for SHIM
Hi,
I guess that one of the issues that are open for discussion is the API
for shim. In order to continue the discussion on this, I have tried to
identify the potentials options for an extended API for SHIM that have
been brought up in the list
Here it is an initial version of the list from the stuff that i recall
that have been discussed over the years here.
- The application should be able to tell the shim to
initiate a communication with a given peer and use
the shim for that.
There are several cases for this:
- The connect-by-name case, where the application
indicates that it wants to initiate a communication
with a FQDN and the resolver obtain different IP
addresses for that FQDN and tries to use them to
establish the communication. Not sure if the shim
needs to be involved for this
- The connect to an ULID case. In this case the
application decides to establish a communication
with a given ULID and the shim may be required
if the ULID is unreachable/unroutable. The shim
will attempt to establish a context using the
ULID selected by the application and using
alternative locators. The question is how does
the shim retrieves the alternative locators?
The options for this may be to cache information
obtained by the DNS (i.e. when the query for a
FQDN returns multiple addresses, these are passed
to the shim as a hint about alternative locators)
The other option would be to use the reverse DNS,
as suggested in draft-nordmark-shim6-esd-00.
- In addition, the application may want to inform
about locators that are not working, or in
particular that the ULID is not reachable. This
may be useful in the case that the application
is triggering the shim context establishment
because of a failure in an ongoing communication.
- The application should be able to inform the shim
about the timeout values for detecting a failure,
for sending keepalives, for starting the exploration
procedure. In particular, the application should be
able to suppress the keepalives
- The application should be able to inform the shim
if hot stand-by is desired, so that alternative paths
are being probed when the current locator pair is
working.
- The application should be able to tell how aggressive
the alternative path exploration procedure is desired
i.e. the number of alternative path that are probed
in parallel
- The application should be able to request not using
the shim for this communication
- Forking related options. In particular, the
application should be able to request the creation
of a Forked Instance for a context, and should be
able to set the preferences for that forked instance,
the same as a regular context.
- The application should be able to inform that an outage
has occurred. Also it should be able to inform that the
performance of the current locator pair is not
satisfactory any more and that the shim should launch
exploration and an alternative locator pair that works
better (for some definition of better that may be
included in the request.
- The application should be able to select a locator pair.
A particular case for this, is that application should
be able to tell the shim that it prefers using the ULID
pair as locator pair as long as they are working.
- The application should be capable of obtaining the
locator sets, local and remote, available for a shim
context. In addition, the application should be able to
obtain the preferences for that locators as well as other
information, such whether the locator is reachable or not.
- The application should be able to set the preferences for
the locators, local and remote one and also to the
preferences of the local locators that will be passed to
the peer.
- Interaction between RFC3484 and the shim. In this case,
the information available in the shim could be used to
influence RFC3484 selection procedure, so that
unreachable locators are avoided.
Others??
Regards, marcelo