[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: failure detection
On Mon, 15 Aug 2005, john.loughney@nokia.com wrote:
I think we should avoid any transport layer functions in the shim
layer (or at least as much as possible). I'm leaning more towards
the rich-api type of functionality, where the shim provides as much
info as it can to the transport layers, and let the transport
layers make decisions.
Hear hear.
I'd also like to potentially add source-address-selection (for the
globally routable shim address) to this list.
That's something which (my gut feeling right now tells me) belongs
*under* shim, in the final output stage of IP. Let shim specify use
of either:
- INADDR_ANY per default for its local source and the OS
+ administratively specified or dynamically specified routes do
their job
- an admistratively specified address (or even a set of addresses,
but that shouldn't be required)
for the endpoint locator/outside/globally-routable address.
Again, SAS is simply *not* something shim6 should do, or something
which it has remotely near enough information to do. Let normal IP
routing and SAS handle this task.
I'd suggest it would be more fruitful to ensure state between two
shim6 speakers /not/ depend on the 'outside' (ie globally routable)
addresses, and let shim6 be able to handle messages between two
endpoints arrive with any 'outside' source address.
It also eliminates the need for hideous n^2 address-to-address
probing which is being considered.
Case to consider in support for this:
Shim6 endpoint, A, with 2 links to 2 ISPs, keeping some kind of
shim6 mapping up to a remote endpoint, B:
B
/|\
[ye olde internet cloud]
ISP1 ISP2
\ /
A
A has two 'locator' addresses, one for each ISP.
If shim6 cares not a jot which locator address A uses to send
packets, then shim6:
- can leave local routing policy to IP routing, as $DEITY intended
eg:
- A may prefer to use ISP1 for outbound packets
- A may run some kind of reachability-determining protocol
on its ISP links and update routing to suit
- A may load-balance outbound packets between the two ISPs
If shim6 assumes *nothing* about the 'outside' IP state, then shim6
could deal very nicefully with the above.
- has no need to specify complex and/or n^2 algorithms for source
address selection
- let IP output decide
- automatically take advantage of any local reachability
information (eg routing protocols, or even a script that
pings links)
- can cope with locator addresses changing (eg link to ISP1
goes down and hence the ISP1 related locator address is
unreachable to B. A's messages, if stateless from IP
routing layer POV, start being sent with locator of ISP1, B
gets messages from A still. If shim6 has heartbeat control
messages, then state can be updated between the two
reasonably quickly)
Note that this does *not* preclude A doing more sophisticated address
selection, if it desires (eg, to work around path failures somewhere
in "ye olde internet cloud"). However, I would suspect most
implementations would /not/ bother trying hard to solve this.
However, I feel it is a *really* bad idea to even consider trying to
solve the problem of "internet cloud" path failures, if it's going to
involve horridly unscaleable algorithms, cause:
- This WG isn't here to solve problems of internet routing
- Existing protocols already live with this today, and
generally we're happy
- Even in a shim6 world, internet-cloud path failures will
still affect non-shim6 destinations.
- It can be solved/mostly-mitigated by running a routing
protocol (ie BGP)
- If you don't need to specify complexity, don't -> KISS
- In trying to specify such a thing in shim6 you'll have to
consider interaction with underlying IP routing, yet
another layering violation.
Please drop the locator-selection crap for now. It's just not needed,
certainly not for an initial shim6 specification, and if shim6 is
designed right (no assumptions made of outside IP state), it can be
an implementation detail, if desired.
- Keep it simple.
- Don't try to reinvent transport layers
- Don't try to tackle the problems of internet routing
- Defer the problem of solving world hunger to another day
regards,
--
Paul Jakma paul@clubi.ie paul@jakma.org Key ID: 64A2FF6A
Fortune:
printk(KERN_WARNING "Hey who turned the DMA off?\n");
linux-2.6.6/drivers/net/wan/z85230.c