blob: a6c1dba5e8ff2ad21d7fa5ee05ecd0d9b101327b [file] [log] [blame]
/*
* Copyright 2016 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.tetopology.management.api;
/**
* Type of switching on a link.
* See RFC 3471 for details.
*/
public enum SwitchingType {
/**
* Designates packet-switch capable-1 (PSC-1).
*/
PACKET_SWITCH_CAPABLE1(1),
/**
* Designates packet-switch capable-2 (PSC-2).
*/
PACKET_SWITCH_CAPABLE2(2),
/**
* Designates packet-switch capable-3 (PSC-3).
*/
PACKET_SWITCH_CAPABLE3(3),
/**
* Designates packet-switch capable-4 (PSC-4).
*/
PACKET_SWITCH_CAPABLE4(4),
/**
* Designates ethernet virtual private line (EVPL).
*/
ETHERNET_VIRTUAL_PRIVATE_LINE(5),
/**
* Designates layer-2 switch capable (L2SC).
*/
LAYER2_SWITCH_CAPABLE(51),
/**
* Designates time-division-multiplex capable (TDM).
*/
TIME_DIVISION_MULTIPLEX_CAPABLE(100),
/**
* Designates OTN-TDM capable.
*/
OTN_TDM_CAPABLE(101),
/**
* Designates lambda-switch capable (LSC).
*/
LAMBDA_SWITCH_CAPABLE(150),
/**
* Designates fiber-switch capable (FSC).
*/
FIBER_SWITCH_CAPABLE(200);
private int value;
/**
* Creates an instance of a switching type constant corresponding
* to the given integer value.
*
* @param value integer value
*/
SwitchingType(int value) {
this.value = value;
}
/**
* Returns the integer value of the switching type.
*
* @return integer value
*/
public int value() {
return value;
}
/**
* Returns the switching type corresponding to a given integer
* value. If the given value is not valid, a null is returned.
*
* @param value integer value
* @return corresponding switching type; or null if value is invalid
*/
public static SwitchingType of(int value) {
switch (value) {
case 1:
return PACKET_SWITCH_CAPABLE1;
case 2:
return PACKET_SWITCH_CAPABLE2;
case 3:
return PACKET_SWITCH_CAPABLE3;
case 4:
return PACKET_SWITCH_CAPABLE4;
case 5:
return ETHERNET_VIRTUAL_PRIVATE_LINE;
case 51:
return LAYER2_SWITCH_CAPABLE;
case 100:
return TIME_DIVISION_MULTIPLEX_CAPABLE;
case 101:
return OTN_TDM_CAPABLE;
case 150:
return LAMBDA_SWITCH_CAPABLE;
case 200:
return FIBER_SWITCH_CAPABLE;
default:
return null;
}
}
}