Tunnel zwischen S1 und S3
S1 dupliziert und fügt Tunnelheader hinzu
  - send packet to S2 & S3
    port 2 & 3
  - add Tunnelheader
    ...
S3 prüft Paketnummer und entscheidet
  - Nummer bereits weitergeleitet?
    drop packet
  - Noch nicht weitergeleitet?
    remove tunnelheader
    forward packet
IP or MPLS Tunnel
forwarding an S2 mittels Tunnelheader


function clone

IPv4 Tunnel
  - dest. adress = deduplication node (s1/s3)
  - bidirectional
  - sequence num in tunnelheader
  - next protocol field for flexible parsing
  - accept and forward packet, if seq num  = last+1
  - store last seq num (register)

Kontrolle:
  - Keine Duplikate
  - Verbindung zwischen s1 und s3 deaktivieren, während ping läuft
    Befehl: link s1 s3 down

2.4.5:
  Nachteil ist, dass out-of-order Pakete nicht weitergeleitet werden, da sie eine zu hohe Nummer haben.
  Kann bei Paketverlust zu vollständigem Verbindungsabbruch führen.
  Verbesserung: store all seq nums that have been received only once.
                delete, if second copy arrives or timeout



If sourceIP = h1 or h2 then
	tunnel and split
else
	detunnel or drop


register<bit<32>>(8192) nextSequenceNumber;

identification feld ist sequence number

clone(cloneType.I2E, portnum)