concise encoding of flow attributes in sdn switches
play

Concise Encoding of Flow Attributes in SDN Switches Robert MacDavid - PowerPoint PPT Presentation

Concise Encoding of Flow Attributes in SDN Switches Robert MacDavid *, Rdiger Birkner , Ori Rottenstreich*, Arpit Gupta*, Nick Feamster*, Jennifer Rexford* *Princeton University, ETH Zrich Motivation Incoming Flows Classifier


  1. Concise Encoding of Flow Attributes in SDN Switches Robert MacDavid *, Rüdiger Birkner † , Ori Rottenstreich*, Arpit Gupta*, Nick Feamster*, Jennifer Rexford* *Princeton University, † ETH Zürich

  2. Motivation Incoming Flows Classifier Switches 2

  3. Motivation - Load Balancing 3

  4. Motivation - Load Balancing LB Class 1 3

  5. Motivation - Load Balancing LB Class 2 LB Class 1 3

  6. Motivation - Quick Failover 4

  7. Motivation - Quick Failover Backup Path Preferred Path 4

  8. Motivation - Quick Failover Backup Path Preferred Path 4

  9. Motivation - Quick Failover Backup Path Backup Path 4

  10. Motivation - Service Chaining 5

  11. Motivation - Service Chaining 5

  12. Motivation - Service Chaining 5

  13. Motivation - Service Chaining 5

  14. Motivation - Access Control 6

  15. Motivation - Access Control 6

  16. Motivation - Access Control 6

  17. Motivation - Access Control 6

  18. Motivation - Access Control 6

  19. Motivation - Access Control ? ? 6

  20. Tagging Applications Existing Tag Conveyed Application Tag Field Solution By IP Fragment Service Chaining FlowTags First Middlebox Field Policy IP Source Alpaca DHCP Enforcement Address Destination SDN-Enabled IXP iSDX ARP MAC 7

  21. Example: Service Chaining Path Tag A,C 00 A,D 01 B,C 10 B,D 11 C A n 3 n 1 n 2 Edge D B Switch 8

  22. Example: Service Chaining Path Tag A,C 00 Exact-Match Rules A,D 01 00 → C 00 → A B,C 10 01 → D 01 → A 10 → C 10 → B B,D 11 11 → D 11 → B C A n 3 n 1 n 2 Edge D B Switch 8

  23. Example: Service Chaining Path Tag A,C 00 A,D 01 Wildcard-Match Rules B,C 10 *0 → C 0* → A B,D 11 *1 → D 1* → B C A n 3 n 1 n 2 Edge D B Switch 8

  24. Attribute-Encoding Tags Switch actions often depend on one attribute If ( C in Tag): goTo C If ( A in Tag): If ( D in Tag): goTo A goTo D If ( B in Tag): goTo B A C n 3 n 1 n 2 D B 9

  25. Tagging Applications Typical Application Attributes Attribute Space Size Service Chaining Middleboxes O(10) Host Policy Enforcement O(100) Permissions Advertising SDN-Enabled IXP O(1000) Peers 10

  26. Attribute-Encoding Tags Any tagging problem is composed of two parts: 11

  27. Attribute-Encoding Tags Any tagging problem is composed of two parts: 1. A Tag for every FEC FEC Attributes Tag traverse A, 1 00 traverse C hit Mbox A, 2 01 hit Mbox D hit Mbox B, 3 10 hit Mbox C hit Mbox B, 4 11 hit Mbox D 11

  28. Attribute-Encoding Tags Any tagging problem is composed of two parts: 2. Pattern-match strings 1. A Tag for every FEC to check for attributes FEC Attributes Tag Attribute Match Condition Compare Tag traverse A, hit Mbox A 1 00 to 0* traverse C Compare Tag hit Mbox A, hit Mbox B 2 01 to 1* hit Mbox D Compare Tag hit Mbox B, hit Mbox C 3 10 to *0 hit Mbox C Compare Tag hit Mbox B, hit Mbox D 4 11 to *1 hit Mbox D 11

  29. Attribute-Encoding Tags Any tagging problem is composed of two parts: 2. Pattern-match strings 1. A Tag for every FEC to check for attributes FEC Attributes Tag Attribute Match Condition Compare Tag traverse A, hit Mbox A 1 00 to 0* traverse C Compare Tag hit Mbox A, hit Mbox B 2 01 to 1* hit Mbox D Compare Tag hit Mbox B, hit Mbox C 3 10 to *0 hit Mbox C Compare Tag hit Mbox B, hit Mbox D 4 11 to *1 hit Mbox D Tradeoff : Tag width vs. complexity of match conditions 11

  30. PathSets Outline 1. Construct tagging scheme for unordered sets of attributes 2. Extend scheme to support ordered sequences of attributes 3. Using prefix codes to reduce tag size 12

  31. Strawman Approach Attribute Sets Attribute Vectors Attributes Attributes FEC FEC S 1 S 1 B, C B C _ _ _ S 2 B, C, D S 2 B C D _ _ S 3 S 3 D _ _ D _ _ S 4 D, E S 4 _ _ D E _ S 5 D, E, F S 5 _ _ D E F 13

  32. Strawman Approach Attribute Vectors Vector Bitmasks FEC Bitmask Attributes FEC 11000 S 1 S 1 B C _ _ _ S 2 11100 S 2 B C D _ _ Masks over 00100 S 3 S 3 _ _ D _ _ [B,C,D,E,F] 00110 S 4 S 4 _ _ D E _ S 5 00111 S 5 _ _ D E F 14

  33. Strawman Approach Very simple match rules! Tags Match Patterns Set Bitmask Attribute Match 11000 1**** B,C B 11100 *1*** B,C,D C 00100 **1** D D 00110 ***1* D,E E 00111 ****1 D,E,F F 15

  34. Strawman Approach Problem: Tag size is linear in the number of attributes to encode. Scales poorly Set Bitmask B,C 11000 B,C,D 11100 D 00100 00110 D,E 00111 D,E,F 16

  35. Masking over Clusters FEC Bitmask Attributes S 1 11000 S 1 B C _ _ _ 11100 S 2 S 2 B C D _ _ Subsets of S 3 00100 S 3 _ _ D _ _ [B,C,D,E,F] S 4 00110 S 4 _ _ D E _ 00111 S 5 S 5 _ _ D E F 17

  36. Masking over Clusters FEC Bitmask Attributes S 1 11000 S 1 B C _ _ _ 11100 S 2 S 2 B C D _ _ Subsets of S 3 00100 S 3 _ _ D _ _ [B,C,D,E,F] S 4 00110 S 4 _ _ D E _ 00111 S 5 S 5 _ _ D E F 17

  37. Masking over Clusters FEC Bitmask Attributes S 1 11000 S 1 B C _ _ _ 11100 S 2 S 2 B C D _ _ Subsets of S 3 00100 S 3 _ _ D _ _ [B,C,D,E,F] S 4 00110 S 4 _ _ D E _ 00111 S 5 S 5 _ _ D E F 17

  38. Masking over Clusters BCD DEF Attributes Subsets of S 1 110 S 1 B C _ _ _ Cluster [B,C,D] S 2 111 S 2 B C D _ _ 001 100 S 3 S 3 _ _ D _ _ S 4 110 S 4 _ _ D E _ Subsets of S 5 111 S 5 _ _ D E F Cluster [D,E,F] 17

  39. Two-part Tag Cluster-0 Cluster-1 BCD DEF S 1 110 111 S 2 001 100 S 3 S 4 110 S 5 111 18

  40. Two-part Tag ID of Cluster 1 BCD DEF S 1 110 111 S 2 001 100 S 3 S 4 110 1 Cl-ID S 5 111 18

  41. Two-part Tag BCD DEF S 1 110 Mask of Cluster 1 111 S 2 001 100 S 3 S 4 110 1 1 1 0 Cl-ID D E F S 5 111 18

  42. Two-part Tag • 4 bits instead of strawman’s 5 BCD DEF • Tag Size now = S 1 110 log 2 (Num Clusters) + Cluster Size 111 S 2 001 100 S 3 S 4 110 1 1 1 0 Cl-ID D E F S 5 111 18

  43. Min Mask Size • Tag field at least as big as the largest set • Ok if assume sets are sparse Attributes . . . . S k ABCDEFGH Tag for set S k . . 0 1 1 1 1 1 1 1 1 . . ID A B C D E F G H 19

  44. Matching not as easy • If X appears in multiple clusters, then multiple match patterns needed for X BCD DEF S1 110 S2 111 S3 001 100 S4 110 S5 111 20

  45. Matching not as easy • If X appears in multiple clusters, then multiple match patterns needed for X D in both clusters BCD DEF S1 110 S2 111 S3 001 100 S4 110 S5 111 20

  46. Matching not as easy • If X appears in multiple clusters, then multiple match patterns needed for X BCD DEF S1 110 0 1 1 1 S2 111 ID B C D S3 001 100 S4 110 1 1 1 0 S5 111 ID D E F 20

  47. Matching not as easy • If X appears in multiple clusters, then multiple match patterns needed for X Att Match BCD DEF B 01** S1 110 C 0*1* 0 1 1 1 S2 111 ID B C D S3 001 100 D 0**1 OR 11** S4 110 E 1*1* 1 1 1 0 S5 111 F 1**1 ID D E F 20

  48. Matching not as easy • If X appears in multiple clusters, then multiple match patterns needed for X 6 patterns (strawman had 5) Att Match BCD DEF B 01** S1 110 C 0*1* 0 1 1 1 S2 111 ID B C D S3 001 100 D 0**1 OR 11** S4 110 E 1*1* 1 1 1 0 S5 111 F 1**1 ID D E F 20

  49. PathSets Outline 1. Construct tagging scheme for unordered sets of attributes 2. Extend scheme to support ordered sequences of attributes 3. Using prefix codes to reduce tag size 21

  50. Ordered Attribute Checks Sequence A → B → C → D C → D → E B → E A → C → E 22

  51. Ordered Attribute Checks One Cluster - ABCDE - No ID Sequence Tag A → B → C → D 11110 C → D → E 00111 B → E 01001 A → C → E 10101 22

  52. Ordered Attribute Checks Sequence Tag A → B → C → D 11110 C → D → E 00111 B → E 01001 A → C → E 10101 22

  53. Ordered Attribute Checks Att. Match String Sequence Tag A “1****” A → B → C → D 11110 B “*1***” C → D → E 00111 C “**1**” B → E 01001 D “***1*” A → C → E E “****1” 10101 22

  54. Ordered Attribute Checks Doesn’t enforce attribute ordering Att. Match String Sequence Tag A “1****” A → B → C → D 11110 B “*1***” C → D → E 00111 C “**1**” B → E 01001 D “***1*” A → C → E E “****1” 10101 22

  55. Ordered Attribute Checks Sequences ordered Left-to-Right Att. Match String Sequence Tag A “1****” A → B → C → D 11110 B “*1***” C → D → E 00111 C “**1**” B → E 01001 D “***1*” A → C → E E “****1” 10101 22

  56. Ordered Attribute Checks Sequences ordered Left-to-Right Att. Match String Att. Match String Sequence Tag A A “1****” “1****” A → B → C → D 11110 B B “ 0 1***” “*1***” C → D → E 00111 C “**1**” C “ 00 1**” B → E 01001 D “***1*” D “ 000 1*” A → C → E E E “ 0000 1” “****1” 10101 Leftmost attribute takes priority 22

Recommend


More recommend