Upload
lilian-cole
View
212
Download
0
Embed Size (px)
Citation preview
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 1
PIM Dense ModeGateD Implementation
Kurt WindischAdvanced Network Technology
CenterUniversity of Oregon
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 2
Outline
PIM-DM Overview GateD PIM-DM Design and Implementation Current Status Testing Issues
http://www.antc.uoregon.edu/GATED/
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 3
PIM-DM Overview
Key Features (PIM version 2): Protocol Independent:
Uses multicast RIB updated by existing unicast routing protocols for RPF lookups
Data-driven flood-and-prune strategy Builds optimal source-based trees: O(S x G) state Soft state
draft-ietf-idmr-pim-dm-06.txt, S. Deering, D. Estrin, D. Farinacci, V. Jacobson, D. Meyer, L. Wei
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 4
Implementation Details
Compliant with PIM v2 specification but uses SM spec timer defaults
Based on GateD PIM-Sparse implementation by George Eddy (ISI)
Shared PIM code (SM/DM) Requires PIM Kernel Patches (bug
fixes)
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 5
PIM-DM GateD Architecture
pim
pimsmpimdm
mbrmroute
kernel
igmp
PIM protocol packets
MFCmaint.
alerts
•PIM protocol packets•neighbor state maint.
MFCmaint. alerts
MFC stats
group state
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 6
MBR Alerts
Creating routing state sg_creation_recv: creates (S,G) entry with
forwarding state (implements flooding) Outgoing interface changes
sg_join_recv: PIM-DM sends (S,G)-Graft upstream – if not triggered by creation flooding
sg_prune_recv: PIM-DM sends (S,G)-Prune upstream – w/ rate-limiting on P2P links
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 7
MBR Interactions
RPF check wrongif_recv: PIM-DM rate-limits
(S,G)-Assert or Prune on receiving interface Group membership changes
igmp_add static_join_recv igmp_delete
Unicast route changes flash: updates MRT when upstream nbr changes
aux_join_recv
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 8
PIMDM MRT source data
pimdm_source_t contains dense-mode-specific data structures for (S,G) entry: src_prune: list of pruned downstream interfaces src_scheduled_jp: list of time-delayed i/f prune actions
and join transmissions on a LAN src_assert_timeout: timeout for upstream assert winner src_rlt: last prune and assert send times for rate-limiting src_graft: pointer into global list of grafting source
entries src_jp_alert_suppress: boolean indicating whether to
heed join/prune MBR alerts (used when creating entry)
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 9
PIMDM MRT source data
source_t
src_data[]
… src_prunesrc_scheduled_jpsrc_assert_timeoutsrc_rltsrc_graftsrc_jp_alert_suppress
pimdm_source_t
MRTdownstream_t
(pruned i/f list) …
pimdm_scheduled_jp
(delayed joins/prunes) …
pimdm_rate_limit_times_t
((S,G) assert/prune times for each i/f
…
mrt_src_list_t
(list of grafting all entries) …
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 10
Current Status
Changes since last GateD meeting: static joins administrative scoped boundaries redesigned Grafting bug fixes: neighbors, asserts, p2p,
termination/reconfiguration… thank you for your bug reports!
continued testing
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 11
Known Bugs
Out-of-order datagram arrival (intermittent) Problem: On assert election downstream
routers receive all asserts before data Result: assert state is lost before (S,G)
state created Still debugging Possible work-around: delay notification
assert send from winner by 1 sec.
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 12
Testing
Manual testing Test scripts (using GaTT Tcl testing library)
Basic PIMv2 Neighbor Interaction Basic PIM-DM v2 Flood and Prune PIM-DM v2 Multiaccess LAN Prune/Join PIM-DM v2 Multiaccess LAN Assert PIM-DM v2 Graft Retransmission and Ackall pass with 3/20/98 pimdm code!See: http://antc.uoregon.edu/GATED/
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 13
Testing ToDo List
Cisco interoperability test scripts PIM border router interop,
especially: PIM-DM DVMRP PIM-DM PIM-SM
General point-to-point operations ATM (?)
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 14
Issues
Inconsistencies in PIM SM and DM specs(DM spec relies on SM spec for some details)
Timeouts Whether to use default timer values from
SM specs (ID and/or RFC2117) or DM spec.– My answer: use SM defaults (except assert
timeout)
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 15
Issues
Timeouts (cont) Assert Timeout must equal Prune
Holdtime– SM spec (ID and RFC2117) says assert=180s and
prune=210s.– Problem: Downstream router switches to back
RPF before new assert election takes place.– Result: Joins and Prunes sent upstream to the
LAN will have incorrect addr in upstream nbr field and will be ignored by the (S,G)-forwarder.
– My Fix: set assert timeout to 210s.
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 16
Issues
Timeouts Join and Prune delay inconsistencies
in spec– SM specs say 4.5s but DM spec says 3s– My answer: for interoperability with all
implementations: listen for joins for 5 seconds before pruning send joins after a random delay of less than 3
seconds
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 17
Issues
Prunes on point-to-point links send to IP multicast address or
destination or remote unicast addr? Remote addr or 0.0.0.0 in upstream
neighbor field of Join/Prune packet? Implementation of new Hello options
draft-ietf-idmr-pimv2-dr-priority-00.txt others in the works
Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 18
My Interests
Continue to develop, debug, and maintain pimdm for GateD
Develop PIM-Dense extension to Ahmed and Pavlin’s PimD.
Develop PIM sparse-dense mode for GateD (ala Cisco)
… ?