Skip to content

Latest commit

 

History

History
146 lines (102 loc) · 3.74 KB

File metadata and controls

146 lines (102 loc) · 3.74 KB

Overview

This project is used to synthesize benchmarks (large fattree topologies configured with bgp/ospf with shortest-path or valley-free routing policy) for S2 (ACM SIGCOMM 2025). It builds on the ACORN benchmark with some debugging and adjustment.

OSPF fattrees

For OSPF fattrees, there's no difference between shortest-path and valley-free.

In the following, we use x to represent the id of each router (i.e., the number after '-' in the router name. For example, the id of core-0 is 0).

Edge routers

For each edge router:

Interfaces

  1. One Loopback interface (70.0.x.0/32).
  2. Several Serial interfaces (10.0.x.?) to connect to aggregation routers.
  3. Several Ethernet interfaces (70.0.x.?) towards hosts.

Static routes

One static route against 70.0.x.0/24.

OSPF

Passive interfaces: Loopback and Ethernet interfaces.

Network: 10.0.0.0/8

Redistribute: static routes

Aggregation routers

For each aggregation router:

Interfaces

  1. One Loopback interface (70.0.x.0/32).
  2. Several Serial interfaces (10.0.x.?) to connect to edge, core and other aggregation routers.

OSPF

Passive interfaces: Loopback interface.

Network: 10.0.0.0/8

Core routers

For each core router:

Interfaces

  1. One Loopback interface (70.0.x.0/32).
  2. Several Serial interfaces (10.0.x.?) to connect to aggregation routers.

OSPF

Passive interfaces: Loopback interface.

Network: 10.0.0.0/8

BGP fattrees

For BGP fattrees, the interface configurations of each router is the same with OSPF fattrees. However, shortest-path fattrees and valley-free fattrees differ in BGP configurations.

Shortest path

  1. The AS Number of each router equals its id.
  2. bgp bestpath as-path multipath-relax.
  3. send-community enabled for every neighbor.
  4. Each edge router networks a /24 subnet (i.e., 70.0.x.0/24).

Valley free

Besides basic BGP configurations as in shortest-path, there are route-maps on edge and aggregation routers.

Route-map on edge routers

Route-map towards aggregation routers:

If the router is the destination:

router bgp xxx
	neighbor 10.0.x.x remote-as x
	neighbor 10.0.x.x send-community
	neighbor 10.0.x.x route-map init_dest out
!
route-map init_dest permit 10
	set community 650:100

else:

router bgp xxx
	neighbor 10.0.x.x remote-as x
	neighbor 10.0.x.x send-community
	neighbor 10.0.x.x route-map filter_comm1 out
!
ip community-list 1 permit 650:100
!
route-map filter_comm1 permit 10
	match community 1
	set community 650:100

Route-map on aggregation routers

Route-map towards edge routers:

router bgp xxx
	neighbor 10.0.x.x remote-as x
	neighbor 10.0.x.x send-community
	neighbor 10.0.x.x route-map set_communities out
!
ip community-list 1 permit 650:100
ip community-list 2 permit 650:200
!
route-map set_communities permit 10
	match community 1
	set community 650:200
route-map set_communities permit 20
	match community 2
	set community 650:300
route-map set_communities permit 30
	set community 650:400

Route-map towards core routers:

router bgp xxx
	neighbor 10.0.x.x remote-as x
	neighbor 10.0.x.x send-community
	neighbor 10.0.x.x route-map filter_comm out
!
ip community-list 1 permit 650:100
ip community-list 2 permit 650:200
!
route-map filter_comm permit 10
	match community 1
	set community 650:200

In general, only one BGP route generated by the destination edge router is propagated through the fattree topology, and it traverses no valley paths (e.g., edge6 -> aggregation4 -> edge7 -> aggregation5 -> core0 -> ...) because of the route-maps.