Title: PDP Implementation V'1'0
1PDP Implementation V.1.0
2Switch On
- Initialization
- Policy Repository
- PIB
- MIB
- Read topology file
- To know which routers and hosts are in the same
domain - To know which are border routers or core routers,
and how they are connected. Therefore,determine
if there exist a satisfied route for admitted
RSVP request. - To know how to send provisioning/signaling
decision to routers. For instance IP
address,port -
3Contd
- Provisioning
- Read all the provisioning policy rules from
repository and apply to all routers based on role
combination.
4Function Interface to Repository
5Provisioning Rule Struture
- For Each Rule, therere following elements
- RuleDomain (char) // domain which this rule
apply to - RuleName (char) // name of the rule
- RuleUsage (char) // describe the usage of this
rule - RuleRoleList (object) // role of the rule, same
rule is possible to play as more than one roles,
so use object implemented by link list - RulePriority (int) // priority of rule
- RuleValidityPeriodList (object) // valid time
period for the rule, same rule is possible to be
valid in more than one time period, so use object
implemented by link list - Practions (object) // action if this rule is
chosen, same rule could have more than one
actions, so use object implemented by link list
(More Details on next slide)
6Provisioning Action Struture
- For Each Practions Object (see previous page),
therere following elements - Name (char) // name of the action
- Direction (char) // 0IN 1OUT
- SetDSCPValue (char) // range to be defined in
accordance with predefined PHBs - Meter (object) // Installs a reusable meter with
the action - MeterScope (char) // FLOW/INTERFACE/DEVICE
- PRTrfcprof (object) // DiffServ traffic profile
- OutofProfileAction (char) // 0shape 1discard
2remark - OOProfileRemarkValue (char) // If
OutofProfileAction2, then set SetDSCPValueOOProf
ileRemarkValue
7Provisioning Meter Struture
- For Each Meter Object (see previous page),
therere following elements - Name (char) // name of the meter
- Prid (int) // reference to the row of PIB
- DataSpecification (int) // committed only
- CommitedRate (int) // byte/sec, same as
tokenrate in rsvp profile - CommitedBurst (int) // bytes, same as bucketsize
in rsvp profile - PeakRate (int) // NOT USED, same as peakrate in
rsvp profile - PeakBurst (int) // NOT USED, same as bucket size
in rsvp profile - HighConfAction (int) // premium service
- MedConfAction (int) // discarding
- LowConfAction (int) // NOT USED
8Provisioning Rule Preparation
- All returned rules from repository are formed as
a linked list - Reform the linked list
- Rules playing the same role linked together
- Ordered linked list based on rule priority.
- Lower Priority rules should be installed earlier,
so that higher priority rules can overwrite lower
priority rules
9Contd
10Deploy Provisioning Rules
- Scan one rule on the linked list
- Map its format to COPS interface function format.
(need to check) - Get the topology info (IP address, port etc.)
about the routers for each rule - Call COPS interface to send out the configuration
info. - Upon the receipt of feedback for each
successfully installed rule, store configuration
info for this rule in PIB. (need talk to chanmin
park for PIB format)
11Questions for Provisioning?
- If we need to store both policy rules instances
and configuration info inside PIB? - How to implement the rules with time condition?
12Signaling
- Wait for request from host
- Once COPS coming in containing user ID info and
RSVP FLOW SPEC, PDP will call COPS interface
function to get all the data. - Call ps_rep_policyquery(domain,user,flowspec),
and get all policies regarding this request. - Policy-based Admission Control
- Install configuration for admitted request
13User ID Structure
- User Information
- SourceIP (char) //The source IP address of the
transmission. - SourcePort (int) //The source Port of the
transmission. - DestinationIP (char) //The Destination IP
address. - DestinationPort (int) //The Destination Port.
- IPProtocol (int) //The IP protocol number.
- ToS (int) //The IP Header ToS byte.
- DSCP (int) //The IP header DSCP byte or to
DCLASS RSVP object - DestinationMac (char ) //Destination MAC address
- SourceMac (char ) //Source MAC address
14User ID Structure (contd)
- 8021QID (int) //The VLAN ID as represented in
the 802.1Q field of the header - Snap (int) //The protocol type carried over
SNAP encapsulation - Ethertype (int) //The frame header ethertype
value - Ssap (int) //The frame header field containing
the source SAP - Dsap (int) //The frame header field containing
the destination SAP - Application (char ) //The ID of the application
that generated the flow - User (char ) //The ID of the user that
initiated the flow , or is designated as the flow
owner
15RSVP FLOWSPEC Structure
- RSVP Flowspec
- TokenRate (int) // in bits/sec.
- TokenBucketSize (int) // in bytes.
- PeakBandwidth (int) // in bits/sec.
- Latency (int) // in microsecs.
- DelayVariation (int) // in microsecs.
- ServiceType (int) // 0Guaranteed 1Controlled
Load 2Best Effort - MaxSduSize (int) // in bytes.
- MinPolicedSize (int) // in bytes.
16Signaling/RSVP Rule Struture
- For Each Rule, therere following elements
- RuleDomain (char) // domain which this rule
apply to - RuleName (char) // name of the rule
- RuleUsage (char) // describe the usage of this
rule - RulePriority (int) // priority of rule
- RuleConditionList (object) // all conditions for
this rule, rule is valid only if all conditions
are met (More Details on following slide) - RSVPactions (object) // action if this rule is
chosen, same rule could have more than one
actions, so use object implemented by link list
(More Details on following slide)
17Condition Structure
- For Each Condition, therere following elements
- Name (char) // name of the condition
- Op (int) // Index to operator
- Var (int) // Index to variable name
- Value (char ) // matching value for variable
// CONDITION SECTION Variables (numbered 1 to
50) // User Information (static) define
PS_REP_CV_SourceIP 1 define PS_REP_CV_SourcePort
2 define PS_REP_CV_DestinationIP 3 define
PS_REP_CV_DestinationPort 4 define
PS_REP_CV_IPProtocol 5 define
PS_REP_CV_ToS 6 define PS_REP_CV_DSCP 7 define
PS_REP_CV_DestinationMac 8 define
PS_REP_CV_SourceMac 9 define PS_REP_CV_8021QID
10 define PS_REP_CV_Snap 11 define
PS_REP_CV_Ethertype 12 define
PS_REP_CV_Ssap 13 define PS_REP_CV_Dsap 14 def
ine PS_REP_CV_Application 15 define
PS_REP_CV_USER 16
//Flowspec (Static) define PS_REP_CV_TokenRate 1
7 define PS_REP_CV_TokenBucketSize 18 define
PS_REP_CV_PeakBandwidth 19 define
PS_REP_CV_Latency 20 define PS_REP_CV_DelayVaria
tion 21 define PS_rEP_CV_ServiceType 22 define
PS_REP_CV_MaxSduSize 23 define
PS_REP_CV_MinPolicedSize 24 // Operators define
PS_REP_OP_Assignment 1 define
PS_REP_OP_Match 2 define PS_REP_OP_Not_Match 3
define PS_REP_OP_INSET 4 define
PS_REP_OP_NOTINSET 5
18Signaling/RSVP Rule Preparation
- Originally returned rules are formed a linked
list - Check if one rule is met by matching all the
conditions inside this rule. If one rule is
invalid, it is deleted from the linked list - Final linked list has all valid rules
- Sort linked list in ascending order, so higher
priority rules can overwrite lower priority rules
19Signaling/RSVP Action Structure
- For Each valid rule, theres a corresponding
action for it. Therere following elements inside
each action - RSVPDirection (char) // 0IN 1OUT
- RSVPMessType (char) // 0Path 1Resv 2Patherr
3Resverr - RSVPServiceType (char) // 0Guaranteed Service
1Controlled Load 2NULL - RSVPStyle (char) // 0SE 1WF 2FF
- RSVPMeter (object) // Installs a reusable meter
with the action. - RSVPMeterScope (char) // FLOW / INTERFACE /
DEVICE - RSVPTrfcProf (object) // RSVP traffic profile
- RSVPCtrlAction (object) // RSVP Control Action
- RSVPInstallAction (object) // Actual policy
install action.
20RSVP Control Action Structure
- For Each RSVP Control Action, therere following
elements - name (char) // name of the control action
- ForwardingMode (int) //
- SendError (int) // 0no1yes
- ReplaceDSCP (int) // not used
- ReplacePreemptionPriority (int) // not used
- ReplaceDefendingPriority (int) // not used
21RSVP Install Action Structure
- For Each RSVP Install Action, therere following
elements - Name (char) // name of the install action
- SetDSCPValue (char) // MARKER!
- SetPreemptionPriority (int) // used to judge
priority on incoming action - SetDefendingPriority (int)
22Questions for Signaling
- How to select route after knowing which routers
have enough capacities for this user request?