Merge remote-tracking branch 'liblldp/master'
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / util / PacketInUtil.java
1 /**
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.openflowplugin.impl.util;
10
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.InvalidTtl;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.NoMatch;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketInReason;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.SendToController;
15
16 public final class PacketInUtil {
17
18     private PacketInUtil() {
19         throw new AssertionError("PacketInUtil is not expected to be instantiated.");
20     }
21
22     /**
23      * Get MDSAL packet-in reason.
24      *
25      * @param reason openflow java packet in reason
26      * @return corresponding MD-SAL reason class for given OF-API reason
27      */
28     public static Class<? extends PacketInReason> getMdSalPacketInReason(
29             org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason reason) {
30         Class<? extends PacketInReason> resultReason = PacketInReason.class;
31
32         if (reason
33                 .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason
34                                 .OFPRNOMATCH)) {
35             resultReason = NoMatch.class;
36         } else if (reason
37                 .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason
38                                 .OFPRINVALIDTTL)) {
39             resultReason = InvalidTtl.class;
40         } else if (reason
41                 .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason
42                                 .OFPRACTION)) {
43             resultReason = SendToController.class;
44         }
45         return resultReason;
46     }
47 }