Redundant Logic Elimination in Network Functions
Bangwen Deng1, Wenfei Wu1, Linhai Song2
1: Tsinghua University 2: The Pennsylvania State University
Redundant Logic Elimination in Network Functions Bangwen Deng 1 , - - PowerPoint PPT Presentation
Redundant Logic Elimination in Network Functions Bangwen Deng 1 , Wenfei Wu 1 , Linhai Song 2 1: Tsinghua University 2: The Pennsylvania State University Network Functions: Critical components in network Growing impact: Various network
1: Tsinghua University 2: The Pennsylvania State University
Whole Protocol Space
Rules:
drop tcp 10.0.0.0/24 any −> 10.1.0.0/24 any …… ……
Whole Protocol Space
Subspace
IP address (L3) Port (L4)
Pkt.IP == Rule.IP Pkt.Port == Rule.Port
Drop Pass
IP address (L3) Port (L4)
Pkt.IP == Rule.IP Pkt.Port == Rule.Port
Drop Pass
IP address (L3) Port (L4)
Pkt.IP == Rule.IP Pkt.Port == Rule.Port
Drop Pass
IP address (L3)
Pkt.IP == Rule.IP
Drop Pass
Pkt.Port == * Port (L4)
IP address (L3)
Pkt.IP == Rule.IP
Drop Pass
True
Port (L4)
IP address (L3)
Pkt.IP == Rule.IP
Drop Pass
True
Port (L4) Port (L4)
IP Parsing TCP Parsing UDP Parsing Proto==UDP Proto==TCP
IP TCP UDP Proto==UDP Proto==TCP
If NF processes TCP packets only, E.g., <10.0.0.0/24, tcp, 80, drop>
Port==80 Port!=80 drop pass Port==* pass
IP Parsing TCP Parsing UDP Parsing Proto==UDP Proto==TCP
IP TCP UDP Proto==UDP Proto==TCP
If NF processes TCP packets only, E.g., <10.0.0.0/24, tcp, 80, drop>
True
Always False
Redundant Logic
Port==80 Port!=80 drop pass Port==* pass
IP Parsing TCP Parsing UDP Parsing Proto==UDP Proto==TCP Parse IP TCP UDP Proto==UDP Proto==TCP Match Port==80 Port!=80 drop pass Port==* pass
IP Parsing TCP Parsing UDP Parsing Proto==UDP Proto==TCP Parse IP TCP UDP Proto==TCP Match Port==80 Port!=80 drop pass Port==* pass
False
IP Parsing TCP Parsing UDP Parsing Proto==UDP Proto==TCP Parse IP TCP UDP Proto==TCP Match Port==80 Port!=80 drop pass Port==* pass
False Dead Code Dead Code
IP Parsing TCP Parsing Proto==UDP Proto==TCP Parse IP TCP Proto==TCP Match Port==80 Port!=80 drop pass
False
Monitor IDS Ingress flows Egress flows
Block UDP packets UDP packets processing is redundant
Monitor IDS Ingress flows Egress flows
Block UDP packets UDP packets processing is redundant
The architecture of NFReducer
The architecture of NFReducer
The architecture of NFReducer
The architecture of NFReducer
Labeled Variables && Actions Source code Packet Processing Logic Program Slicer
Packet Processing Logic Configured Rules Apply Configs & Extract Paths Path1 Path2
… …
Constant Folding & Propagation
… …
Check path feasibility
… …
Dead Code Elimination & Merge Optimized Code
NF1 NF2
Consolidate Individual NF Optimization Decompose
different NF chain execution models.
Optimized NF1 Optimized NF2
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
Throughput of Snort Throughput of Suricata
processes
Snort
processes
Snort