Skip to content

valley-free crate is a Rust package that reads CAIDA's AS-relationship data and explores AS-level paths using `valley-free` model.

License

Notifications You must be signed in to change notification settings

bgpkit/valley-free

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Valley Free Explorer

Rust Crates.io Docs.rs License

valley-free crate is a Rust package that reads CAIDA's AS-relationship data and explores AS-level paths using valley-free model.

Core Ideas

Topology Building

The first step for doing valley-free paths simulation is to obtain AS-level topology and inter-AS relationships. Here in this library, we utilize CAIDA's AS-relationship data data to obtain both the AS relationships and the topology.

The CAIDA's AS-relationship data is formatted as follows:

## A FEW LINES OF COMMENT
## A FEW LINES OF COMMENT
## A FEW LINES OF COMMENT
1|7470|0
1|9931|-1
1|11537|0
1|25418|0
2|35000|0
2|263686|0
...

The data format is:

<provider-as>|<customer-as>|-1
<peer-as>|<peer-as>|0

A non-comment row in the dataset means:

  • there is a AS-level link between the two ASes
  • the relationships are either peer-to-peer (0) or provider-to-customer (-1)

Path Propagation

It generate a graph simulating the AS paths propagation from the origin and creating a graph of all the possible paths in the way of the propagation.

For exemplo for the following topology:

It start from the AS4 and form a direct graph with all next hops that confom wih valley-free routing (i.e. the path with the next hop is stil valley-free), and keeps propagate until generate a direct acyclic graph (DAG) with all with the "valley-free view" of the AS4 to the network.

And then you can use this DAG with all the classic graph methods to analyze it. For example, you can find the length of all shortest paths, or even all the paths.

Usage

Rust

Install

[dependencies]
valley_free="0.3"

Examples

To use the examples expect the CAIDA-as 2023-12-01 dataset on the root directory.

The examples are available in the examples/ direction.

You can run it with cargo run --example=<filename without .rs>.

About

valley-free crate is a Rust package that reads CAIDA's AS-relationship data and explores AS-level paths using `valley-free` model.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages