Skip to content

IPNetworkingLab/capacity-aware-pim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Capacity-Aware PIM

This repository contains the artifacts we used for our paper called Intradomain Multicast Routing for Modern Routers, published at ANRW 2026.

Abstract

IP multicast was designed in an era of software-based routers, when forwarding state lived in expandable RAM. Today, multicast relies on hardware for efficient replication of packets across interfaces, which has hard, fixed limits on the number of multicast forwarding entries it may hold. We argue that the limited available multicast state calls for a redefinition of the multicast protocol stack.

In our paper, we survey multicast forwarding-state capacity across ISP core routers and enterprise routers to highlight their hardware limits. We then propose to extend existing routing protocols (OSPF and IS-IS) to expose the hardware replication capacities of nodes to the control plane. Building on these exposed capacities, we propose a capacity-aware path-selection algorithm for PIM-SSM based on Shortest Widest Path (SWP), allowing to load-balance multicast joins over paths with remaining multicast hardware entries. Our results show that, by exposing multicast capacities, we can not only improve the join acceptance rate by up to 22%, but our solution also allows to reach a two times higher join rate without rejecting any join. By increasing the join acceptance rate, more concurrent multicast flows can coexist in networks.

Description of artifacts

Our artifacts are organised as follows:

  • sim: directory containing all the code related to the simulation.
    • sim/swp_sim.py: Core code of the simulator, which generates groups, joins and track multicast state usage across routers
    • sim/run_sweep.py: run our simulator with varying parameters
    • sim/stats.py: show some statistics about the results
    • sim/all.sh: run all our experiments, allowing to reproduce the obtained results
  • plot: directory containing all the code related to plotting.
  • results: directory containing all the CSV files produced by our simulations
  • data: directory containing the topologies we used for the paper
  • figures: directory containing the raw figures we used in the paper

Rerun our experiments

To rerun our experiments, simply run sim/all.sh. This script will relaunch all our experiments, and save the results in dedicated csv files in the results directory.

Plotting the results

Once simulations have been run, you can plot the results with the following commands:

python3 plot/plot_capacity.py
python3 plot/plot_paper.py

Citation

You can cite this paper from the associated page

# BibTex here

About

Repository containing the artifacts for our paper: Intradomain Multicast Routing for Modern Routers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors