18
t Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology Center University of Oregon

Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

Embed Size (px)

Citation preview

Page 1: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

Kurt Windisch -- University of Oregon ANTC IETF GATED -- March 30, 1998 1

PIM Dense ModeGateD Implementation

Kurt WindischAdvanced Network Technology

CenterUniversity of Oregon

Page 2: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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/

Page 3: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 4: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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)

Page 5: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 6: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 7: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 8: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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)

Page 9: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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) …

Page 10: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 11: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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.

Page 12: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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/

Page 13: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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 (?)

Page 14: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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)

Page 15: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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.

Page 16: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 17: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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

Page 18: Kurt Windisch -- University of Oregon ANTCIETF GATED -- March 30, 1998 1 PIM Dense Mode GateD Implementation Kurt Windisch Advanced Network Technology

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)

… ?