Statistics
| Branch: | Revision:

iof-docs / specs / bgp_graphml.tex @ d5aa08f5

History | View | Annotate | Download (3.42 KB)

1
\documentclass[twocolumn, 10pt]{article}
2
\usepackage{acronym} 
3
\usepackage{tikz} 
4
\usepackage{cleveref} 
5
\usetikzlibrary{calc,shapes,arrows}
6

    
7
\title{BGP graphml specification}
8
\begin{document}
9
\maketitle
10

    
11
\newcommand{\mandatory}{\textcolor{red}}
12

    
13
\acrodef{AS}{autonomous system}
14
\acrodef{ADV}{advertisement}
15

    
16
This document describes the graphml representation of a BGP network.
17
Graphml is a standard for representing graphs enabling attribute embedding.
18

    
19
A BGP network is a simple undirected graph $G(V, E)$ (no self-loops, no multi-edges) modeling BGP \ac{ADV} communication.
20

    
21

    
22
\begin{itemize}
23
\item \textbf{A node} is an eBGP speaker node representing an \ac{AS};
24
\item \textbf{An edge} represents a BGP \ac{ADV} communication link (hence undirected).
25
\end{itemize}
26

    
27
\section{Attributes}
28

    
29
We indicate with \textit{destination\_string} a concatenation of IP subnets, in the form of: {\footnotesize{\verb[<ip_address>/<mask_bits>,<ip_address>/<mask_bits>,...[ }}
30
\\
31

    
32
Node attributes (mandatory in red):
33
\begin{itemize}
34
\item \mandatory{type}: \{T,M,C,CP\}, which respectively indicates if a node is tier-1, mid-level, customer or content provider;
35
\item destinations: [destination\_string], it indicates the destinations exposed by the node.
36
\end{itemize}
37

    
38
Edge attributes (mandatory in red):
39
\begin{itemize}
40
\item \mandatory{type}: \{transit, peer\}, which for a couple $(i, j)\in V\times V$, indicates whether there is a customer-provider or peer-to-peer relationship among $i$ and $j$.
41
\item \mandatory{customer}: $z\in V$, in case the edge $(i,j)$ type is \textit{transit}, $z$ identifies the customer among $i,j$ (the relationship provider is hence the other node). It is set to 'none' in the case the edge type is not \textit{transit};
42

    
43
\item termination1: $i\in (i,j)$;
44
\item termination2: $j\in (i,j)$;
45
\item mrai1: [interval] in seconds, it indicates the per link $(i,j)$ minimum route \ac{ADV} interval for node \textit{termination1}. Note, node-based mrai setup (Fabrikant gadget) can be described by setting all its mrai edge intervals to the same value.
46
\item mrai2: [interval] in seconds, it indicates the per link $(i,j)$ minimum route \ac{ADV} interval for node \textit{termination2}. 
47
\end{itemize}
48

    
49
\section{Example}
50
The following is a basic graphml example with mandatory attributes only.
51

    
52
\footnotesize
53
\begin{verbatim}
54
<?xml version='1.0' encoding='utf-8'?>
55
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
56
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
57
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
58
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
59
<key attr.name="type" attr.type="string" for="edge" id="d2"/>
60
<key attr.name="customer" attr.type="string" for="edge" id="d1"/>
61
<key attr.name="type" attr.type="string" for="node" id="d0"/>
62
<graph edgedefault="undirected">
63
<node id="1">
64
  <data key="d0">T</data>
65
</node>
66
<node id="2">
67
  <data key="d0">M</data>
68
</node>
69
<node id="3">
70
  <data key="d0">C</data>
71
</node>
72
<node id="4">
73
  <data key="d0">CP</data>
74
</node>
75
<edge source="2" target="1">
76
  <data key="d2">transit</data>
77
  <data key="d1">2</data>
78
</edge>
79
<edge source="3" target="2">
80
  <data key="d2">transit</data>
81
  <data key="d1">3</data>
82
</edge>
83
<edge source="4" target="2">
84
  <data key="d2">transit</data>
85
  <data key="d1">4</data>
86
</edge>
87
<edge source="3" target="4">
88
  <data key="d2">peer</data>
89
  <data key="d1">none</data>
90
</edge>
91

    
92
</graph></graphml>
93
\end{verbatim}
94

    
95
%\bibliographystyle{IEEEtran}
96
%\bibliography{biblio}
97

    
98
\end{document}