Committed by
Jonathan Hart
WIP: Started implementing static flows for corsa vanderweken pipeline.
Modified to not use Corsa driver by default. Change-Id: If8df5769cf084346121d34bf4490f578e6b6f2d0
Showing
7 changed files
with
13 additions
and
10 deletions
This diff is collapsed. Click to expand it.
| ... | @@ -134,6 +134,7 @@ public final class DefaultTrafficTreatment implements TrafficTreatment { | ... | @@ -134,6 +134,7 @@ public final class DefaultTrafficTreatment implements TrafficTreatment { |
| 134 | case DROP: | 134 | case DROP: |
| 135 | drop = true; | 135 | drop = true; |
| 136 | break; | 136 | break; |
| 137 | + case TABLE: | ||
| 137 | case OUTPUT: | 138 | case OUTPUT: |
| 138 | outputs.add(instruction); | 139 | outputs.add(instruction); |
| 139 | break; | 140 | break; | ... | ... |
core/store/dist/src/main/java/org/onosproject/store/group/impl/DistributedGroupStore.java
0 → 100644
This diff is collapsed. Click to expand it.
| ... | @@ -17,7 +17,6 @@ package org.onosproject.openflow.drivers; | ... | @@ -17,7 +17,6 @@ package org.onosproject.openflow.drivers; |
| 17 | 17 | ||
| 18 | import com.google.common.collect.Lists; | 18 | import com.google.common.collect.Lists; |
| 19 | import org.onosproject.openflow.controller.Dpid; | 19 | import org.onosproject.openflow.controller.Dpid; |
| 20 | -import org.onosproject.openflow.controller.RoleState; | ||
| 21 | import org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch; | 20 | import org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch; |
| 22 | import org.projectfloodlight.openflow.protocol.OFDescStatsReply; | 21 | import org.projectfloodlight.openflow.protocol.OFDescStatsReply; |
| 23 | import org.projectfloodlight.openflow.protocol.OFFlowMod; | 22 | import org.projectfloodlight.openflow.protocol.OFFlowMod; |
| ... | @@ -43,8 +42,6 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { | ... | @@ -43,8 +42,6 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { |
| 43 | private static final int FIB_TABLE = 6; | 42 | private static final int FIB_TABLE = 6; |
| 44 | private static final int LOCAL_TABLE = 9; | 43 | private static final int LOCAL_TABLE = 9; |
| 45 | 44 | ||
| 46 | - | ||
| 47 | - | ||
| 48 | OFCorsaSwitchDriver(Dpid dpid, OFDescStatsReply desc) { | 45 | OFCorsaSwitchDriver(Dpid dpid, OFDescStatsReply desc) { |
| 49 | super(dpid); | 46 | super(dpid); |
| 50 | 47 | ||
| ... | @@ -58,12 +55,9 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { | ... | @@ -58,12 +55,9 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { |
| 58 | 55 | ||
| 59 | @Override | 56 | @Override |
| 60 | public void write(List<OFMessage> msgs) { | 57 | public void write(List<OFMessage> msgs) { |
| 61 | - if (role == RoleState.MASTER) { | ||
| 62 | channel.write(msgs); | 58 | channel.write(msgs); |
| 63 | } | 59 | } |
| 64 | 60 | ||
| 65 | - } | ||
| 66 | - | ||
| 67 | @Override | 61 | @Override |
| 68 | public void sendMsg(OFMessage msg, TableType type) { | 62 | public void sendMsg(OFMessage msg, TableType type) { |
| 69 | if (msg.getType() == OFType.FLOW_MOD) { | 63 | if (msg.getType() == OFType.FLOW_MOD) { |
| ... | @@ -152,7 +146,9 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { | ... | @@ -152,7 +146,9 @@ public class OFCorsaSwitchDriver extends AbstractOpenFlowSwitch { |
| 152 | default: | 146 | default: |
| 153 | log.warn("Unknown table type: {}", type); | 147 | log.warn("Unknown table type: {}", type); |
| 154 | } | 148 | } |
| 149 | + builder.setInstructions(newInstructions); | ||
| 155 | this.write(builder.build()); | 150 | this.write(builder.build()); |
| 151 | + log.info("Installed {}", builder.build()); | ||
| 156 | } else { | 152 | } else { |
| 157 | this.write(msg); | 153 | this.write(msg); |
| 158 | } | 154 | } | ... | ... |
providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer10.java
| ... | @@ -55,7 +55,7 @@ import java.util.Optional; | ... | @@ -55,7 +55,7 @@ import java.util.Optional; |
| 55 | */ | 55 | */ |
| 56 | public class FlowModBuilderVer10 extends FlowModBuilder { | 56 | public class FlowModBuilderVer10 extends FlowModBuilder { |
| 57 | 57 | ||
| 58 | - private static final Logger log = LoggerFactory.getLogger(FlowModBuilderVer10.class); | 58 | + private final Logger log = LoggerFactory.getLogger(getClass()); |
| 59 | private static final int OFPCML_NO_BUFFER = 0xffff; | 59 | private static final int OFPCML_NO_BUFFER = 0xffff; |
| 60 | 60 | ||
| 61 | private final TrafficTreatment treatment; | 61 | private final TrafficTreatment treatment; | ... | ... |
providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/FlowModBuilderVer13.java
| ... | @@ -74,7 +74,7 @@ import java.util.Optional; | ... | @@ -74,7 +74,7 @@ import java.util.Optional; |
| 74 | */ | 74 | */ |
| 75 | public class FlowModBuilderVer13 extends FlowModBuilder { | 75 | public class FlowModBuilderVer13 extends FlowModBuilder { |
| 76 | 76 | ||
| 77 | - private static final Logger log = LoggerFactory.getLogger(FlowModBuilderVer10.class); | 77 | + private final Logger log = LoggerFactory.getLogger(getClass()); |
| 78 | private static final int OFPCML_NO_BUFFER = 0xffff; | 78 | private static final int OFPCML_NO_BUFFER = 0xffff; |
| 79 | 79 | ||
| 80 | private final TrafficTreatment treatment; | 80 | private final TrafficTreatment treatment; |
| ... | @@ -118,6 +118,7 @@ public class FlowModBuilderVer13 extends FlowModBuilder { | ... | @@ -118,6 +118,7 @@ public class FlowModBuilderVer13 extends FlowModBuilder { |
| 118 | .setMatch(match) | 118 | .setMatch(match) |
| 119 | .setFlags(Collections.singleton(OFFlowModFlags.SEND_FLOW_REM)) | 119 | .setFlags(Collections.singleton(OFFlowModFlags.SEND_FLOW_REM)) |
| 120 | .setPriority(flowRule().priority()) | 120 | .setPriority(flowRule().priority()) |
| 121 | + .setTableId(TableId.of(flowRule().type().ordinal())) | ||
| 121 | .build(); | 122 | .build(); |
| 122 | 123 | ||
| 123 | return fm; | 124 | return fm; |
| ... | @@ -144,6 +145,7 @@ public class FlowModBuilderVer13 extends FlowModBuilder { | ... | @@ -144,6 +145,7 @@ public class FlowModBuilderVer13 extends FlowModBuilder { |
| 144 | .setMatch(match) | 145 | .setMatch(match) |
| 145 | .setFlags(Collections.singleton(OFFlowModFlags.SEND_FLOW_REM)) | 146 | .setFlags(Collections.singleton(OFFlowModFlags.SEND_FLOW_REM)) |
| 146 | .setPriority(flowRule().priority()) | 147 | .setPriority(flowRule().priority()) |
| 148 | + .setTableId(TableId.of(flowRule().type().ordinal())) | ||
| 147 | .build(); | 149 | .build(); |
| 148 | 150 | ||
| 149 | return fm; | 151 | return fm; |
| ... | @@ -219,6 +221,9 @@ public class FlowModBuilderVer13 extends FlowModBuilder { | ... | @@ -219,6 +221,9 @@ public class FlowModBuilderVer13 extends FlowModBuilder { |
| 219 | .setGroup(OFGroup.of(group.groupId().id())); | 221 | .setGroup(OFGroup.of(group.groupId().id())); |
| 220 | actions.add(groupBuilder.build()); | 222 | actions.add(groupBuilder.build()); |
| 221 | break; | 223 | break; |
| 224 | + case TABLE: | ||
| 225 | + //FIXME: should not occur here. | ||
| 226 | + break; | ||
| 222 | default: | 227 | default: |
| 223 | log.warn("Instruction type {} not yet implemented.", i.type()); | 228 | log.warn("Instruction type {} not yet implemented.", i.type()); |
| 224 | } | 229 | } | ... | ... |
| ... | @@ -36,6 +36,7 @@ public class Ethernet extends BasePacket { | ... | @@ -36,6 +36,7 @@ public class Ethernet extends BasePacket { |
| 36 | public static final short TYPE_IPV4 = (short) 0x0800; | 36 | public static final short TYPE_IPV4 = (short) 0x0800; |
| 37 | public static final short TYPE_IPV6 = (short) 0x86dd; | 37 | public static final short TYPE_IPV6 = (short) 0x86dd; |
| 38 | public static final short TYPE_LLDP = (short) 0x88cc; | 38 | public static final short TYPE_LLDP = (short) 0x88cc; |
| 39 | + public static final short TYPE_VLAN = (short) 0x8100; | ||
| 39 | public static final short TYPE_BSN = (short) 0x8942; | 40 | public static final short TYPE_BSN = (short) 0x8942; |
| 40 | public static final short VLAN_UNTAGGED = (short) 0xffff; | 41 | public static final short VLAN_UNTAGGED = (short) 0xffff; |
| 41 | public static final short MPLS_UNICAST = (short) 0x8847; | 42 | public static final short MPLS_UNICAST = (short) 0x8847; |
| ... | @@ -284,7 +285,7 @@ public class Ethernet extends BasePacket { | ... | @@ -284,7 +285,7 @@ public class Ethernet extends BasePacket { |
| 284 | bb.put(this.destinationMACAddress.toBytes()); | 285 | bb.put(this.destinationMACAddress.toBytes()); |
| 285 | bb.put(this.sourceMACAddress.toBytes()); | 286 | bb.put(this.sourceMACAddress.toBytes()); |
| 286 | if (this.vlanID != Ethernet.VLAN_UNTAGGED) { | 287 | if (this.vlanID != Ethernet.VLAN_UNTAGGED) { |
| 287 | - bb.putShort((short) 0x8100); | 288 | + bb.putShort(TYPE_VLAN); |
| 288 | bb.putShort((short) (this.priorityCode << 13 | this.vlanID & 0x0fff)); | 289 | bb.putShort((short) (this.priorityCode << 13 | this.vlanID & 0x0fff)); |
| 289 | } | 290 | } |
| 290 | bb.putShort(this.etherType); | 291 | bb.putShort(this.etherType); |
| ... | @@ -319,7 +320,7 @@ public class Ethernet extends BasePacket { | ... | @@ -319,7 +320,7 @@ public class Ethernet extends BasePacket { |
| 319 | this.sourceMACAddress = MacAddress.valueOf(srcAddr); | 320 | this.sourceMACAddress = MacAddress.valueOf(srcAddr); |
| 320 | 321 | ||
| 321 | short ethType = bb.getShort(); | 322 | short ethType = bb.getShort(); |
| 322 | - if (ethType == (short) 0x8100) { | 323 | + if (ethType == TYPE_VLAN) { |
| 323 | final short tci = bb.getShort(); | 324 | final short tci = bb.getShort(); |
| 324 | this.priorityCode = (byte) (tci >> 13 & 0x07); | 325 | this.priorityCode = (byte) (tci >> 13 & 0x07); |
| 325 | this.vlanID = (short) (tci & 0x0fff); | 326 | this.vlanID = (short) (tci & 0x0fff); | ... | ... |
-
Please register or login to post a comment