Committed by
Gerrit Code Review
[ONOS-3392] Add L3 interfaces for ClassifierService class.
Change-Id: Ic236452153a8e8c999609893be7ed87538e737d4
Showing
2 changed files
with
75 additions
and
3 deletions
... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.vtn.table; | 16 | package org.onosproject.vtn.table; |
17 | 17 | ||
18 | +import org.onlab.packet.IpAddress; | ||
18 | import org.onlab.packet.MacAddress; | 19 | import org.onlab.packet.MacAddress; |
19 | import org.onosproject.core.ApplicationId; | 20 | import org.onosproject.core.ApplicationId; |
20 | import org.onosproject.net.DeviceId; | 21 | import org.onosproject.net.DeviceId; |
... | @@ -23,13 +24,13 @@ import org.onosproject.net.flowobjective.Objective; | ... | @@ -23,13 +24,13 @@ import org.onosproject.net.flowobjective.Objective; |
23 | import org.onosproject.vtnrsc.SegmentationId; | 24 | import org.onosproject.vtnrsc.SegmentationId; |
24 | 25 | ||
25 | /** | 26 | /** |
26 | - * Applies classifier flows to the device. | 27 | + * Applies classifier flows to the device. Classifier table is Table(0). |
27 | */ | 28 | */ |
28 | public interface ClassifierService { | 29 | public interface ClassifierService { |
29 | 30 | ||
30 | /** | 31 | /** |
31 | * The port rule that message from host matches Table(0) Match: host mac and | 32 | * The port rule that message from host matches Table(0) Match: host mac and |
32 | - * ingress port Action: set vnid and go to table(50). | 33 | + * ingress port Action: set vnid and go to L2Forward Table(50). |
33 | * | 34 | * |
34 | * @param deviceId Device Id | 35 | * @param deviceId Device Id |
35 | * @param segmentationId the vnid of the host belong to | 36 | * @param segmentationId the vnid of the host belong to |
... | @@ -44,7 +45,7 @@ public interface ClassifierService { | ... | @@ -44,7 +45,7 @@ public interface ClassifierService { |
44 | 45 | ||
45 | /** | 46 | /** |
46 | * The port rule that message from tunnel Table(0) Match: tunnel port and | 47 | * The port rule that message from tunnel Table(0) Match: tunnel port and |
47 | - * vnid Action: go to table(50). | 48 | + * vnid Action: go to L2Forward Table(50). |
48 | * | 49 | * |
49 | * @param deviceId Device Id | 50 | * @param deviceId Device Id |
50 | * @param segmentationId the vnid of the host belong to | 51 | * @param segmentationId the vnid of the host belong to |
... | @@ -55,4 +56,50 @@ public interface ClassifierService { | ... | @@ -55,4 +56,50 @@ public interface ClassifierService { |
55 | Iterable<PortNumber> localTunnelPorts, | 56 | Iterable<PortNumber> localTunnelPorts, |
56 | Objective.Operation type); | 57 | Objective.Operation type); |
57 | 58 | ||
59 | + /** | ||
60 | + * Assemble the L3 Classifier table rules which are sended from external port. | ||
61 | + * Match: ipv4 type, ingress port and destination ip. | ||
62 | + * Action: go to DNAT Table(20). | ||
63 | + * | ||
64 | + * @param deviceId Device Id | ||
65 | + * @param inPort external port | ||
66 | + * @param dstIp floating ip | ||
67 | + * @param type the operation type of the flow rules | ||
68 | + */ | ||
69 | + void programL3ExPortClassifierRules(DeviceId deviceId, PortNumber inPort, | ||
70 | + IpAddress dstIp, | ||
71 | + Objective.Operation type); | ||
72 | + | ||
73 | + /** | ||
74 | + * Assemble the L3 Classifier table rules which are sended from internal port. | ||
75 | + * Match: ingress port, source mac and destination mac. | ||
76 | + * Action: set vnid and go to L3Forward Table(30). | ||
77 | + * | ||
78 | + * @param deviceId Device Id | ||
79 | + * @param inPort the ingress port of the host | ||
80 | + * @param srcMac source mac | ||
81 | + * @param dstMac destination vm gateway mac | ||
82 | + * @param actionVni the vni of L3 network | ||
83 | + * @param type the operation type of the flow rules | ||
84 | + */ | ||
85 | + void programL3InPortClassifierRules(DeviceId deviceId, | ||
86 | + PortNumber inPort, MacAddress srcMac, | ||
87 | + MacAddress dstMac, | ||
88 | + SegmentationId actionVni, | ||
89 | + Objective.Operation type); | ||
90 | + | ||
91 | + /** | ||
92 | + * Assemble the Arp Classifier table rules. | ||
93 | + * Match: arp type and destination ip. | ||
94 | + * Action: set vnid and go to ARP Table(10). | ||
95 | + * | ||
96 | + * @param deviceId Device Id | ||
97 | + * @param dstIp source gateway ip | ||
98 | + * @param actionVni the vni of the source network (l2vni) | ||
99 | + * @param type the operation type of the flow rules | ||
100 | + */ | ||
101 | + void programArpClassifierRules(DeviceId deviceId, IpAddress dstIp, | ||
102 | + SegmentationId actionVni, | ||
103 | + Objective.Operation type); | ||
104 | + | ||
58 | } | 105 | } | ... | ... |
... | @@ -20,6 +20,7 @@ import static org.slf4j.LoggerFactory.getLogger; | ... | @@ -20,6 +20,7 @@ import static org.slf4j.LoggerFactory.getLogger; |
20 | 20 | ||
21 | import org.onlab.osgi.DefaultServiceDirectory; | 21 | import org.onlab.osgi.DefaultServiceDirectory; |
22 | import org.onlab.osgi.ServiceDirectory; | 22 | import org.onlab.osgi.ServiceDirectory; |
23 | +import org.onlab.packet.IpAddress; | ||
23 | import org.onlab.packet.MacAddress; | 24 | import org.onlab.packet.MacAddress; |
24 | import org.onosproject.core.ApplicationId; | 25 | import org.onosproject.core.ApplicationId; |
25 | import org.onosproject.net.DeviceId; | 26 | import org.onosproject.net.DeviceId; |
... | @@ -35,6 +36,7 @@ import org.onosproject.net.flowobjective.FlowObjectiveService; | ... | @@ -35,6 +36,7 @@ import org.onosproject.net.flowobjective.FlowObjectiveService; |
35 | import org.onosproject.net.flowobjective.ForwardingObjective; | 36 | import org.onosproject.net.flowobjective.ForwardingObjective; |
36 | import org.onosproject.net.flowobjective.ForwardingObjective.Flag; | 37 | import org.onosproject.net.flowobjective.ForwardingObjective.Flag; |
37 | import org.onosproject.net.flowobjective.Objective; | 38 | import org.onosproject.net.flowobjective.Objective; |
39 | +import org.onosproject.net.flowobjective.Objective.Operation; | ||
38 | import org.onosproject.vtn.table.ClassifierService; | 40 | import org.onosproject.vtn.table.ClassifierService; |
39 | import org.onosproject.vtnrsc.SegmentationId; | 41 | import org.onosproject.vtnrsc.SegmentationId; |
40 | import org.slf4j.Logger; | 42 | import org.slf4j.Logger; |
... | @@ -117,4 +119,27 @@ public class ClassifierServiceImpl implements ClassifierService { | ... | @@ -117,4 +119,27 @@ public class ClassifierServiceImpl implements ClassifierService { |
117 | }); | 119 | }); |
118 | } | 120 | } |
119 | 121 | ||
122 | + @Override | ||
123 | + public void programL3ExPortClassifierRules(DeviceId deviceId, | ||
124 | + PortNumber exPort, | ||
125 | + IpAddress fIp, Operation type) { | ||
126 | + // TODO Auto-generated method stub | ||
127 | + } | ||
128 | + | ||
129 | + @Override | ||
130 | + public void programL3InPortClassifierRules(DeviceId deviceId, | ||
131 | + PortNumber inPort, | ||
132 | + MacAddress srcMac, | ||
133 | + MacAddress dstVmGwMac, | ||
134 | + SegmentationId l3Vni, | ||
135 | + Operation type) { | ||
136 | + // TODO Auto-generated method stub | ||
137 | + } | ||
138 | + | ||
139 | + @Override | ||
140 | + public void programArpClassifierRules(DeviceId deviceId, IpAddress srcGwIp, | ||
141 | + SegmentationId srcVni, Operation type) { | ||
142 | + // TODO Auto-generated method stub | ||
143 | + } | ||
144 | + | ||
120 | } | 145 | } | ... | ... |
-
Please register or login to post a comment