| /* |
| * Copyright 2016-present Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.onosproject.driver.extensions; |
| |
| import org.onosproject.net.flow.instructions.ExtensionTreatment; |
| import org.onosproject.net.flow.instructions.ExtensionTreatmentType; |
| |
| /** |
| * The factory of move treatment. |
| */ |
| public final class NiciraMoveTreatmentFactory { |
| |
| /** |
| * Public constructor is prohibited. |
| */ |
| private NiciraMoveTreatmentFactory() { |
| |
| } |
| |
| /** |
| * Creates a move treatment that move arp sha to tha. |
| * |
| * @return ExtensionTreatment |
| */ |
| public static ExtensionTreatment createNiciraMovArpShaToTha() { |
| int srcOfs = 0; |
| int dstOfs = 0; |
| int nBits = 48; |
| int srcSha = 0x00012206; |
| int dstTha = 0x00012406; |
| return new DefaultMoveExtensionTreatment(srcOfs, dstOfs, nBits, srcSha, |
| dstTha, |
| ExtensionTreatmentType.ExtensionTreatmentTypes |
| .NICIRA_MOV_ARP_SHA_TO_THA.type()); |
| } |
| |
| /** |
| * Creates a move treatment that move arp spa to tpa. |
| * |
| * @return ExtensionTreatment |
| */ |
| public static ExtensionTreatment createNiciraMovArpSpaToTpa() { |
| int srcOfs = 0; |
| int dstOfs = 0; |
| int nBits = 32; |
| int srcSpa = 0x00002004; |
| int dstTpa = 0x00002204; |
| return new DefaultMoveExtensionTreatment(srcOfs, dstOfs, nBits, srcSpa, |
| dstTpa, |
| ExtensionTreatmentType.ExtensionTreatmentTypes |
| .NICIRA_MOV_ARP_SPA_TO_TPA.type()); |
| } |
| |
| /** |
| * Creates a move treatment that move eth src to dst. |
| * |
| * @return ExtensionTreatment |
| */ |
| public static ExtensionTreatment createNiciraMovEthSrcToDst() { |
| int srcOfs = 0; |
| int dstOfs = 0; |
| int nBits = 48; |
| int srcEth = 0x00000406; |
| int dstEth = 0x00000206; |
| return new DefaultMoveExtensionTreatment(srcOfs, dstOfs, nBits, srcEth, |
| dstEth, |
| ExtensionTreatmentType.ExtensionTreatmentTypes |
| .NICIRA_MOV_ETH_SRC_TO_DST.type()); |
| } |
| |
| /** |
| * Creates a move treatment that move ip src to dst. |
| * |
| * @return ExtensionTreatment |
| */ |
| public static ExtensionTreatment createNiciraMovIpSrcToDst() { |
| int srcOfs = 0; |
| int dstOfs = 0; |
| int nBits = 32; |
| int srcIp = 0x00000e04; |
| int dstIp = 0x00001004; |
| return new DefaultMoveExtensionTreatment(srcOfs, dstOfs, nBits, srcIp, |
| dstIp, |
| ExtensionTreatmentType.ExtensionTreatmentTypes |
| .NICIRA_MOV_IP_SRC_TO_DST.type()); |
| } |
| } |