Traffic control and Quality of Service - PowerPoint PPT Presentation

About This Presentation
Title:

Traffic control and Quality of Service

Description:

Traffic control and Quality of Service Reading: Chapter 18 Some basic concepts Traffic policing Incompliant packets dropped Traffic shaping Incompliant packets held ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 10
Provided by: Zhen88
Learn more at: http://www.cs.fsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Traffic control and Quality of Service


1
Traffic control and Quality of Service
  • Reading Chapter 18

2
Some basic concepts
  • Traffic policing
  • Incompliant packets dropped
  • Traffic shaping
  • Incompliant packets held till satisfied
  • Queueing discipline
  • Packet departure order (time)
  • Classes
  • Packet holders
  • Filters
  • Packet classifiers

3
Traffic control in Linux kernel
...
..
p8022_rcv
arp_rcv
ip_rcv
ip_queue_xmit
arp_send
Layer 3
ETH_P_802_2
dev.c
br_input.c
dev.c
...
net_rx_action
handle_bridge
dev_queue_xmit
CONFIG_BRIDGE
dev-gtqdisc-gtenqueue
do_softirq
Scheduler
eth0
eth1
CPU1
CPU2
dev.c
net_tx_action
qdisc_run
softnet_datacpun.input_pkt_queue
Data-link layer (OSI-Layer 12)
dev.c
netif_rx
qdisc_restart
Scheduler
eth_type_trans()
driver.c
dev-gtqdisc-gtdequeue
dev_alloc_skb()
driver.c
net_interrupt
dev-gthard_start_xmit
4
Traffic control
dequeue
enqueue
One specific queueing discipline
5
Basic queue discipline interface
  • enqueue()
  • Put a packet into queue
  • dequeue()
  • Get a packet from the queue
  • drop()
  • Remove a packet
  • requeue(), reset(), init(), destroy(), change(),
    dump()

6
struct Qdisc
Struct Qdisc int (enqueue)() struct
sk_buff (dequeue)() struct
Qdisc_ops ops struct Qdisc next struct
sk_buff_head q struct net_device dev
7
Adding a discipline into kernel
  • pktsched_init()
  • Used when a discipline is compiled permanently
    into kernel
  • Initializing RT-NETLINK interface
  • Calling register_qdisc() function
  • register_qdisc()
  • Called by pktsched_init() or init_module()
  • Inserting discipline into the list
  • Allocating operations (functions)

8
Filters
  • classify()
  • init()
  • destroy()
  • delete()

9
Implementing a discipline
  • Concepts of token bucket filter
  • Rate R
  • Depth B
  • Functions
  • tbf_init()
  • tbf_enqueue()
  • tbf_dequeue()
Write a Comment
User Comments (0)
About PowerShow.com