Skip to content

PolKA: Polynomial Key-based Architecture for Source Routing

License

Notifications You must be signed in to change notification settings

nerds-ufes/polka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolKA - Polynomial Key-based Architecture for Source Routing

Source routing (SR) is a prominent alternative to table-based routing for reducing the number of network states. Actually the traditional SR approaches, based on Port Switching, still maintain a state in the packet by using a header rewrite operation. The residue number system (RNS) is a promising way to achieve fully stateless SR, in which forwarding decisions at core nodes rely on a simple modulo operation over a route label. Nevertheless, such operation over integer arithmetic is not natively supported by commodity network hardware. Thus, PolKA proposes a novel RNS-based SR scheme that explores binary polynomial arithmetic using Galois field (GF) of order 2.

Example of polka_sr

PolKA relies on the Chinese remainder theorem (CRT) computed over polynomials. As shown in figure, the architecture is composed of: (i) edge nodes, (ii) core nodes, and (iii) an SDN Controller, responsible for configuring the nodes. PolKA's routing system is designed on three polynomials over GF(2): (i) nodeID: a fixed identifier assigned to core nodes by the Controller in a network configuration phase; (ii) portID: an identifier assigned to the output ports of each core node; and (iii) routeID: a route identifier, calculated by the Controller and embedded into the packets by the edge nodes.

Figure shows an example of PolKA SR for a path composed of three nodes, which received their nodeIDs from the Controller: s1(t) = t + 1 (or 11), s2(t) = t2 + t + 1 (or 111), s3(t) = t3 + t + 1 (or 1011). For this path, the portIDs are: o1(t) = 1, o2(t) = t (or 10), o3(t) = t2 + t (or 110). The routeID calculated by the Controller is R(t) = t4 (or 10000). Thus, each node can calculate the portID using a modulo operation. For example: at s3, o3(t) = < 10000 >1011 = 110.

Preparing the environment

To download the VM image, we have to use the following link:

[6.7GB Size] - Lubuntu 20.04 x64 - Mininet-WiFi with P4 (pass: wifi)

After downloading, we have to perform the login (user: wifi, pass: wifi) and clone the repository as follows:

wifi@wifi-virtualbox:~$ git clone https://github.com/nerds-ufes/polka.git

Using PolKA

References

2020 - PolKA: Polynomial Key-based Architecture for Source Routing in Network Fabrics

2021 - Deploying PolKA Source Routing in P4 Switches

2022 - M-PolKA: Multipath Polynomial Key-based Source Routing for Reliable Communications

2024 - PoT-PolKA: Let the Edge Control the Proof-of-Transit in Path-Aware Networks

Related projects

PORVIR-5G

About

PolKA: Polynomial Key-based Architecture for Source Routing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •