- Once the computation is done in the control plane, the forwarding table installed back into the memory of the input link

-
Input ports: -> performs the physical layer function of terminating an incoming physical link at a router -> performs link-layer functions needed to interoperate with the link layer at the other side of the incoming link -> consultes the forwarding table to determine the router output port to which an arriving packet will be forwarded
-
Switching fabric -> connects the router’s input ports to its output ports.
-
Output ports -> stores packets received from the switching fabric and transmits these on the outgoing link by performing the necessary link-layer and physical-layer functions.
-
Routing processor -> the routing processor performs control-plane functions. In SDN routers is responsible for communicating with the remote controller.
4.2.1 Input Port Processing and Destination-Based Forwarding

-> destination-based forwarding (tradicional control plane router): forward based only on destination IP address (a bit faster, cheaper) -> generalized forwarding (SDN routers): forward based on any set of header field values (a bit slower, more expensive)
Longest Prefix Match -> when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address.

fst = 0 snd = 1
4.2.2 Switching
- Transfer packets from input buffer to appropriate output buffer
- Switching Rate: rate at which packets can be transfer from input to output
4.2.3 Buffering Management
Input Port Weeing
- If switch fabric slower than input line-> queuing, delay and loss
- Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forward

Output Port Queing
- If switch fabric faster than output line -> queuing,delay and loss

- Buffering required when datagrams arrive from fabric faster than link transmission rate.
- Drop policy: which datagrams to drop if no free buffers?
- Scheduling discipline chooses among queued datagrams for transmission

How much buffering?
- RFC 3439 rule of thumb: average buffering equal to “typical” RTT (say 250 msec) times link capacity C
- more recent recommendation: with N TCP flows, buffering equal to
$$ RTT * C/ sqrt(N) $$
-
Dropping Policies: -> tail drop: drop arriving packet -> priority: drop on priority basis -> random: drop randomly
-
Scheduling (next packet to send on a link)Policies: -> FIFO : first in first out -> Class Based Scheduling (diving packets into classes that may depend on headers): - Priority : certain class get first out - Round Robin (RR) : routing turns (one class at a time) - WFQ: weighted rotation turns (combination of the above two)