Quality of Service 3 Overview > What is QoS? What is QoS? > Label-Based Routing Label-Based Routing > IPQoS IPQoS > ATM QoS ATM QoS > CLI CLI.

The Presentation inside:

Slide 0

Slide 1

Quality of Service

Slide 2

3 Overview What is QoS? Label-Based Routing IPQoS ATM QoS CLI

Slide 3

QoS What is QoS?

Slide 4

5 Definition QoS = ability of network element to have some level of assurance that data traffic and service requirements can be satisfied

Slide 5

6 QoS Approaches Relative QoS Example: Differentiated Services, VLAN user priority Guaranteed QoS Example: Integrated Services, ATM QoS

Slide 6

QoS Label-Based Routing

Slide 7

8 Overview History and Now Classification and Routing Configuration Example

Slide 8

9 Label-Based Routing: History = Evolution of source-based routing Source-based routing: Present in all SpeedTouch router products up to R4.1 Allows to route traffic source and destination-based to certain gateways or ports (= atm pvcs) = Fixed label with only source address parameter

Slide 9

10 Label-Based Routing: Now Available from R4.2 onwards Classification of traffic on many criteria Reuses firewall engine > all firewall criteria available Traffic routing through different ATM PVCs with different QoS classes Can be combined with IPQoS in future

Slide 10

11 Classification and Routing Classification: before routing packet enters router and is classified Labels attached to routes Routes with labels have highest priority Routes with labels only route packets with correct labels

Slide 11

12 Classification and Routing – Continued First match is chosen Use of traffic stream cache First time: slow path Next time: fast path

Slide 12

13 Classification and Routing – Illustrated intf intf label fwd Fast-path classifier Slow-path

Slide 13

14 Configuration CLI only Label menu Creation / deletion of labels TOS marking possible

Slide 14

15 Configuration – Continued Label / rule menu Creation / deletion of rules Default chain = _auto_labels Used for backward compatibility or when configuring source-based routes Default chain linked to user_labels User_labels chain to be used only Every new rule must be attached to user_labels with certain index Statistics possible: rule stats

Slide 15

16 Labelling Mechanism

Slide 16

17 Rules Source Interface (preferably NOT used) [srcintf [!]= <string>] Source Interface Group (preferably used) [srcintfgrp [!]= <{wan|local|lan} or number>] IP src [!]= <ip-range> (IP/mask notation) dst [!]= <ip-range> (IP/mask notation)

Slide 17

18 Rules – Continued ToS (tagging) tos [!]= <number{0-255}> precedence [!]= <number{0-7}> dscp [!]= <number{0-63}> Protocol prot [!] = <{icmp|igmp|ipinip|tcp|udp|ah|esp|ipcomp} or number> Port srcport [!] & srcportend dstport [!] & dstportend

Slide 18

19 Rules – Continued Known ports = {echo|discard|systat|daytime|qotd|chargen|ftp-data|ftp|telnet|smtp|time|nicname|dns|domain |sql*net|bootps|bootpctftp|gopher|finger|www-http|kerberos|rtelnet|pop2|pop3|sunrpc|auth|sqlserv|nntp|sntp|ntp |ingres-net|netbios-ns|netbios-dgm|netbios-ssn|imap2|sql-net|pcmail-srv|snmp|snmptrap|bgp|irc-o|at-rtmp |at-nbp|at-echo|at-zis|ipx|imap3|clearcase|ulistserv|ldap|netware-ip|snpp|ike|exec|biff|login|who|syslog |printer|talk|ntalk|utime|rip|timed|netwall|uucp|uucp-rlogin|new-rwho|rtsp|...} or number>

Slide 19

20 Example Scenario: 2 PPPoA sessions with traffic separation Session 1: PPPoA1: only icmp traffic Session 2: PPPoA2: only UDP and TCP traffic 4 labels required Label ICMP rule 0: from LAN and protocol ICMP through PPPoA1 Label TCP rule 1: from LAN and protocol TCP through PPPoA2 Label UDP rule 2: from LAN and protocol UDP through PPPoA2 Label DNSLOCAL rule 3: from local and protocol UDP port 53

Slide 20

21 Example: Network Setup SpeedTouch 610 Eth0 : BRAS Internet PC A : DG : TCP traffic, through pppoa2 ICMP traffic, through pppoa1 PPPoA1 PPPoA2

Slide 21

22 Configuration: Example Start from configuration with 2 PPPoA sessions Create labels :label add name=dnslocal :label add name=icmp :label add name=tcp :label add name=udp Create label rules :label rule create chain=user_labels index=0 srcintfgrp=lan prot=icmp label=icmp :label rule create chain=user_labels index=1 srcintfgrp=lan prot=tcp label=tcp :label rule create chain=user_labels index=2 srcintfgrp=lan prot=udp label=udp :label rule create chain=user_labels index=3 srcintfgrp=local prot=udp dstport=dns label=dnslocal

Slide 22

23 Configuration: Example – Continued Create routes to PPPoA1 and PPPoA2 :ip rtadd dst= label=dnslocal intf=pppoa2 :ip rtadd dst= label=icmp intf=pppoa1 :ip rtadd dst= label=tcp intf=pppoa2 :ip rtadd dst= label=udp intf=pppoa2 Remark: PPP routes can be added Through PPP session directly Through IP menu > used in this example because multiple routes had to be added

Slide 23


Slide 24

25 Overview Features Implementation Configuration Example Scenario

Slide 25

26 New Features: Problem Solving WAN Gateway Packet Loss > TCP slowdown > Voice degradation > Game hiccups > Video “noise” Delay > TCP choke (BW=Window/Delay) > Slow response time for web browsing Delay Variation (jitter) > Extra buffering delay on voice

Slide 26

27 New Features: How It Works – 600 Series WAN Gateway Best Effort Highest Priority Upstream IP traffic identified based on: “labels”: IP header-based : configured on CPE Diffserv Codepoints: set by applications VLAN tags (802.1p): Set by endpoints? TCP Ack => Ack filtering Traffic assigned to 1 of 6 queues: 1: Expedited Forwarding: Absolute top priority traffic (rate limited) 2-5: Assured Forwarding : each queue given fair share of available bandwidth 6: Best Effort: take what is left

Slide 27

28 New Features: How It Works – 500 Series LAN WAN Gateway Best Effort Highest Priority Residential QoS focused on: Plug and play operation: VLAN, DiffServ Priority: EF: VoIP, Gaming AF: interactive sessions BE: rest Implementation : EF queues collapsed to 2 queues WFQ between 2 Queues Diffserv compliant NOT AF compliant

Slide 28

29 New Features: How It Works – For Dummies Through well-chosen defaults in templates

Slide 29

30 New Features: What Is Kept for R5.3 Per flow rate limiting ALG-based labelling Head-of-Line blocking

Slide 30

31 Implementation in 4.2.7 Classification and labelling IPQoS queues per VP/VC Hierarchical Fixed Priority and Weighted Fair Queuing Scheduling Tail Drop and Propagation discard strategies

Slide 31

32 Implementation in 4.2.7 – Continued Classification of data and configuration of corresponding internal Class (0..15) Defclass: Default class of assigned connection Ackclass: Class of ACK segments of TCP connection Default set of labels with corresponding Class Rate limiting for real-time queue TCP-ACK filtering and prioritization

Slide 32

33 High-Level Module Overview Automatic class mapping: VLAN User Priority ATM QoS

Slide 33

34 High-Level Module Overview – Example DSCP – AF/EF

Slide 34

35 Routed Data Path – WFQ

Slide 35

36 Configuration intf IPQoS configuration Queuing mechanism Queuing rules Label configuration Queuing order / Classification Label rules Data matching

Slide 36

37 IPQoS Configuration – CLI dest =<> destination of interface (phonebook entry) [state = <{disabled|enabled}>] Enable, disable IP QoS for interface [discard = <{tail|early}>] Packet discard strategy (congestion) [priority = <{wfq|strict}>] Subqueue priority algorithm [realtimerate = <number{1-100}>] Percentage of bandwidth [burstsize = <number{1-128}>] Burst size in kilo bytes [weight1 = <number{1-96}>] Weight of queue 1 used for WFQ [weight2 = <number{1-96}>] [weight3 = <number{1-96}>] [weight4 = <number{1-96}>] [maxpackets = <number{0-100}>] Maximum number of packets in all queues [maxbytes = <number{0-128}>] Maximum size in kilo bytes in all queues default

Slide 37

38 IPQoS Queue Configuration – CLI Propagation from queue to next lower priority queue IPQoS queue configuration dest =<> destination of interface (phonebook entry) queue = <number{0-5}> Number of subqueue [propagate = <{disabled|enabled}>] Propagate packets in low priority queue (instead of dropping) [maxpackets = <number{0-100}>] Maximum number of packets in subqueue [maxbytes = <number{0-128}>] Maximum subqueue size in kilo bytes

Slide 38

39 Default Set of Labels WFQ per VP / VC

Slide 39

40 Labels – CLI Label add name <voip> Label configuration name = <{voip}> Name of label to config [classification = <{ignore|overwrite|increase}>] Methods of classification [defclass = <number{0-15}>] Default class of assigned connection [ackclass = <number{0-15}>] Class of ACK segments of TCP connection [ttloverwrite = <{disabled|enabled}>] Enable / disable ttl overwrite [ttl = <number{0-255}>] Time To Live in IP packet (ttl- overwrite) [tosmarking = <{disabled|enabled}>] Enable/disable tos marking [tos = <number{0-255}>] Type of Service specification in IP packet (tos-marking) [trace = <{disabled|enabled}>] Enable/disable tracing for this label

Slide 40

41 Labels – CLI – Illustrated

Slide 41

42 Labels / Rules Rules = Label-based routing Multiple PVCs Same labels / rules possible Other destination of routing = other PVC = other queues Example configurations Default queues RT and BE WFQ with different weights ACK prioritization for maximal downstream

Slide 42

43 IPQoS: Example 1 SpeedTouch 610 Eth0 : BRAS Internet PC A : DG : IPoA PC A : DG :

Slide 43

44 Example 1 =>:ip ifconfig intf=ipoa dest=ipoa-qos =>:ip ipadd ... Outdated CLI commands =>:ipqos config dest=ipoa-qos state=enabled =>:label rule create chain=user_labels index=0 src= label=RealTime =>:label rule create chain=user_labels index=1 src=! label=BestEffort

Slide 44

45 Statistics UDP flood from PC VoIP call Label rule stats Ipqos queue stats

Slide 45

46 Example 2: WFQ SpeedTouch 610 Eth0 : IPoA PC A : DG : WFQ2 5% BRAS Internet PC C : DG : WFQ4 75% FTP server PC B : DG : WFQ3 15%

Slide 46

47 Example 2: WFQ – Continued :ipqos config dest=ipoa2 state=enabled priority=wfq weight1=5 weight2=5 weight3=15 weight4=75 Default labels: Rules: :label rule create chain=user_labels src= label=WFQ2 :label rule create chain=user_labels src= label=WFQ3 :label rule create chain=user_labels src= label=WFQ4

Slide 47

48 Example 3 ACK SpeedTouch 610 Eth0 : BRAS Internet PC A : DG : IPoA :label config name=ack-prio classification=increase defclass=4 ackclass=14 :label rule create chain=user_labels src= label=ack-prio MAXIMAL downstream bandwidth use!

Slide 48

49 ACK

Slide 49

50 IPQoS Scenario – WFQ ATM 512kb uplink (100%) 128kb Real Time and overload = drop (=25%) 256kb Gold and overload = propagate to Silver (=50% guaranteed) Silver = Best Effort (rest) RT queue 5 / 25% WFQ BE queue 0 / no label match PQ Silver weight=30 Gold weight=66 0-5 6-7 8-9 10-11 12-13 14-15 WFQ 3 weight=2 WFQ 4 weight=2 WAN LAN

Slide 50

51 IPQoS Scenario – BW RealTime traffic has 25% from 512kb = 128kb Remaining 512kb –128kb = 384kb for WFQ 66% of 384kb = 253kb > Gold 30% of 384kb = 115kb > Silver

Slide 51

52 IPQoS Scenario – BW – Continued All available BW used In case of no RT traffic, minimum guaranteed BW: > Gold = 66% of 512kb = 338kb Guaranteed: 128kb RT 256kb Gold + propagation to Silver

Slide 52

53 Upstream BW Theoretical subdivide = max RT + Max Gold + max Silver RT 128kb Gold 256kb Silver 128kb WFQ Less RT + max Gold + max Silver traffic RT Gold Silver WFQ BW 512kb Less RT + less Silver + max Gold traffic RT Gold Silver WFQ Less RT + less Gold + max Silver traffic RT Gold Silver WFQ

Slide 53

54 IPQoS Scenario – Configuration

Slide 54

55 IPQoS Scenario – Label

Slide 55

56 Scenario Overview SpeedTouch 610 Eth0 : BRAS Internet PC A : DG : IPoA Phone : DG : PC B : DG : FTP-server FTP-upload RT-traffic UDP-flood Gold traffic

Slide 56

57 Label Rule Stats Are labels matching?

Slide 57

58 IPQoS Queue Stats Clear stats: => ipqos queue stats clear enable

Slide 58

59 user.ini [ phone.ini ] add name=dsl addr=0*38 type=ipoa [ ipoa.ini ] ifadd intf=ipoa dest=dsl ifconfig intf=ipoa ifattach intf=ipoa [ ipqos.ini ] config dest=dsl state=enabled realtimerate=25 burstsize=2 weight1=30 weight2=66 weight3=2 weight4=2 queue config dest=dsl queue=0 queue config dest=dsl queue=1 queue config dest=dsl queue=2 propagate=enabled queue config dest=dsl queue=3 queue config dest=dsl queue=4 queue config dest=dsl queue=5

Slide 59

60 user.ini – Continued [ label.ini ] add name=BestEffort add name=Gold add name=RealTime add name=Silver add name=WFQ1 add name=WFQ2 add name=WFQ3 add name=WFQ4 config name=BestEffort classification=increase defclass=4 ackclass=4 config name=Gold classification=increase defclass=8 ackclass=8 config name=RealTime classification=increase defclass=14 ackclass=14 config name=Silver classification=increase defclass=6 ackclass=6 config name=WFQ1 classification=increase defclass=6 ackclass=6 config name=WFQ2 classification=increase defclass=8 ackclass=8 config name=WFQ3 classification=increase defclass=10 ackclass=10 config name=WFQ4 classification=increase defclass=12 ackclass=12 chain create chain=user_labels rule create chain=user_labels index=0 src= label=RealTime rule create chain=user_labels index=1 src= label=RealTime rule create chain=user_labels index=2 src= label=Gold rule create chain=user_labels index=3 src= label=Gold rule create chain=user_labels index=4 src= label=Gold rule create chain=user_labels index=5 src= label=Gold

Slide 60


Slide 61

62 Overview QoS Profiles Connection Admission Control Shaping Scheduling ATM Bundling

Slide 62

ATM QoS QoS Profiles

Slide 63

64 Terminology Peak Cell Rate (PCR): Max. number of ATM cells per second that may be sent on connection Sustainable Cell Rate (SCR): Average number of ATM cells per second that may be sent on connection Maximum Burst Size (MBS): Max. number of ATM cells per second that may be sent in burst (exceeding SCR for short period of time)

Slide 64

65 CBR Constant Bit Rate Static amount of guaranteed bandwidth Typically used for video GUARANTEED PCR NON COMPLIANT linerate cps time maxCTD

Slide 65

66 VBR Variable Bit Rate Variable amount of guaranteed bandwidth Typically used for bursty traffic PCR NON COMPLIANT linerate cps time SCR GUARANTEED GUARANTEED MBS maxCTD

Slide 66

67 VBR: Real-Time / Non Real-Time Real-Time Intended for real-time traffic with constrained delay and delay variation values Extra parameter: maxCTD (max. cell transfer delay, also applicable to CBR) Non-Real-Time Intended for non-real-time traffic with bursty characteristic, but without transfer delay limitations

Slide 67

68 UBR Unspecified Bit Rate All traffic non-guaranteed Variable delay, best effort NON-GUARANTEED PCR NON COMPLIANT linerate cps time

Slide 68

ATM QoS Connection Admission Control

Slide 69

70 CAC Connection Admission Control (CAC) Verification if connection that is requested to be established can be accepted Parameters Guaranteed bandwidths of each connection Available line-rate Main principle ? guaranteed bandwidths ? available line-rate Non-guaranteed bandwidth always accepted, even when exceeding available line-rate

Slide 70

71 CAC – Continued Calculation effective bandwidth: CBR Parameters: PCR, SCR=PCR, MBS=1 cell Available bandwidth: DSL line-rate Recalculation: re-synchronization DSL-line Rule of thumb: effective bandwidth = PCR VBR-rt Parameters: PCR, SCR, MBS Available bandwidth: DSL line-rate Recalculation: re-synchronization DSL-line

Slide 71

72 CAC – Continued Calculation effective bandwidth VBR-nrt: Parameters: PCR, SCR, MBS Available bandwidth: DSL line-rate - ? eff. real-time bandwidth recalculation: CAC of new real-time connection (CBR or VBR-rt) Re-synchronization DSL-line Useful tool: CAC excel-sheet

Slide 72

ATM QoS Shaping

Slide 73

74 Definition Shaping = altering traffic characteristics to ensure that cells are conform to traffic contract

Slide 74

75 Mechanisms Buffering / queuing PCR limitation > Leaky Bucket shaping Burst length limitation > Token Bucket shaping

Slide 75

76 Connection Types CBR, UBR: PCR shaping VBR-rt / -nrt: PCR, SCR, MBS shaping

Slide 76

ATM QoS Scheduling

Slide 77

78 Definition Scheduling = selecting among all queues containing at least one cell that will be transmitted on output link

Slide 78

79 Selecting Order Order of selecting: CBR VBR-rt VBR-nrt UBR Round Robin scheduling between connections of same class

Slide 79

ATM QoS ATM Bundling

Slide 80

81 Concept “Bundle” concept allows multiple virtual circuits between CPE and BRAS to be grouped or “bundled” so that each end is treated as single IP interface. Allows ATM devices between BRAS and CPE to treat individual VCs in bundle with different QoS

Slide 81

82 Use Cases VLAN user priority mapping IP Precedence / DSCP mapping Connection mapping

Slide 82

83 Priority Mapping VLAN priority TPID = 0x8100, TCI = priority (3bit) + CFI (1bit) + VID (12bit) TOS byte in IP header IP Precedence: DSCP:

Slide 83

84 ATM Bundling Priority mapping: VLAN priority - IP Precedence / DSCP Configuration No need of VLAN to use IP precedence / DSCP mapping

Slide 84

85 Priority Mapping

Slide 85

86 ATM Bundling Connection mapping: Load balancing of multiple IP-streams Every IP-stream => stream-ID (ever increasing) Stream-ID modulo 16 used to match against selector values

Slide 86


Slide 87

88 CLI Creating Connection Traffic Descriptor (CTD) :atm qosbook ctdadd name=cbr_ctd_400 conformance=CBR peakrate=400 :atm qosbook add name cbr_400 txctd cbr_ctd_400 rxctd cbr_ctd_400 :atm qosbook ctdadd name=vbrrt_ctd_100 conformance=VBR peakrate=300 sustrate=100 maxburst=1200 realtime=enabled :atm qosbook add name vbrrt_100 txctd vbrrt_ctd_100 rxctd vbrrt_ctd_100 :atm qosbook ctdadd name=ubr_ctd_300 conformance=UBR peakrate=300 :atm qosbook add name ubr_300 txctd ubr_ctd_300 rxctd ubr_ctd_300

Slide 88

89 CLI – Continued Creating ATM interface with QoS profile :atm phonebook add name=ph1_36 addr=1*36 :atm phonebook add name=ph2_36 addr=2*36 :atm phonebook add name=ph3_36 addr=3*36 :atm ifadd intf atm1_36 :atm ifconfig intf=atm1_36 dest=ph1_36 qos=cbr_400 ulp=mac :atm ifattach intf=atm1_36 :atm ifadd intf atm2_36 :atm ifconfig intf=atm2_36 dest=ph2_36 qos=vbrrt_100 ulp=mac :atm ifattach intf=atm2_36 :atm ifadd intf atm3_36 :atm ifconfig intf=atm3_36 dest=ph3_36 qos=ubr_300 ulp=mac :atm ifattach intf=atm3_36

Slide 89

90 CLI – Continued Creating ATM bundle + defining selector range :atm bundle add name atm_bundle :atm bundle config name= atm_bundle policy=priority propagate=disabled :atm bundle ifadd name atm_bundle intf atm1_36 :atm bundle ifadd name atm_bundle intf atm2_36 :atm bundle ifadd name atm_bundle intf atm3_36 :atm bundle ifconfig name= atm_bundle intf=atm1_36 state=enabled low=0 high=5 :atm bundle ifconfig name= atm_bundle intf=atm2_36 state=enabled low=6 high=9 :atm bundle ifconfig name= atm_bundle intf=atm3_36 state=enabled low=10 high=15 :atm bundle attach name atm_bundle

Slide 90

91 CLI – Continued Priority mapping: enable on incoming bridge interface VLAN priority :eth bridge ifconfig intf=ethport1 prioconfig=overwrite :eth bridge ifconfig intf=ethport1 prioconfig=increase IP precedence :eth bridge ifconfig intf=ethport1 prioconfig=overwrite ipprec=precedence DSCP :eth bridge ifconfig intf=ethport1 prioconfig=overwrite ipprec=dscp