Search in sources :

Example 1 with DefaultDeviceInterfaceDescription

use of org.onosproject.net.device.DefaultDeviceInterfaceDescription in project onos by opennetworkinglab.

the class XmlParserCisco method getInterfacesFromConfig.

/**
 * Parses device configuration and returns the descriptions of the device
 * interfaces.
 *
 * @param cfg an hierarchical configuration
 * @return list of interface descriptions for the device
 */
public static List<DeviceInterfaceDescription> getInterfacesFromConfig(HierarchicalConfiguration cfg) {
    List<DeviceInterfaceDescription> intfs = Lists.newArrayList();
    List<HierarchicalConfiguration> subtrees = cfg.configurationsAt("data.xml-config-data.Device-Configuration.interface");
    for (HierarchicalConfiguration intfConfig : subtrees) {
        String intfName = getInterfaceName(intfConfig);
        DeviceInterfaceDescription.Mode intfMode = getInterfaceMode(intfConfig);
        List<VlanId> intfVlans = getInterfaceVlans(intfConfig, intfMode);
        short intfLimit = getInterfaceLimit(intfConfig);
        boolean intfLimited = (intfLimit == NO_LIMIT ? false : true);
        DeviceInterfaceDescription intf = new DefaultDeviceInterfaceDescription(intfName, intfMode, intfVlans, intfLimited, intfLimit);
        intfs.add(intf);
    }
    return intfs;
}
Also used : DeviceInterfaceDescription(org.onosproject.net.device.DeviceInterfaceDescription) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) HierarchicalConfiguration(org.apache.commons.configuration.HierarchicalConfiguration) VlanId(org.onlab.packet.VlanId)

Example 2 with DefaultDeviceInterfaceDescription

use of org.onosproject.net.device.DefaultDeviceInterfaceDescription in project onos by opennetworkinglab.

the class ServerInterfaceConfig method getInterfaces.

@Override
public List<DeviceInterfaceDescription> getInterfaces() {
    // Retrieve the device ID
    DeviceId deviceId = getDeviceId();
    checkNotNull(deviceId, MSG_DEVICE_ID_NULL);
    // .. and the device itself
    RestServerSBDevice device = null;
    try {
        device = (RestServerSBDevice) getDevice(deviceId);
    } catch (ClassCastException ccEx) {
        log.error("Failed to get interfaces for device {}", deviceId);
        return Collections.EMPTY_LIST;
    }
    if (device == null) {
        log.error("No device with ID {} is available for interface discovery", deviceId);
        return Collections.EMPTY_LIST;
    }
    if ((device.nics() == null) || (device.nics().size() == 0)) {
        log.error("No interfaces available on {}", deviceId);
        return Collections.EMPTY_LIST;
    }
    // List of port descriptions to return
    List<DeviceInterfaceDescription> intfDescriptions = Lists.newArrayList();
    // Sorted list of NIC ports
    Set<NicDevice> nics = new TreeSet(device.nics());
    // Iterate through the NICs of this device to populate the list
    for (NicDevice nic : nics) {
        List<VlanId> devVlanIds = getVlanIdListForDevice(nic);
        Mode devMode = getDeviceMode(devVlanIds);
        // Create an interface description and add it to the list
        intfDescriptions.add(new DefaultDeviceInterfaceDescription(nic.name(), devMode, devVlanIds, RATE_LIMIT_STATUS, NO_LIMIT));
    }
    return ImmutableList.copyOf(intfDescriptions);
}
Also used : NicDevice(org.onosproject.drivers.server.devices.nic.NicDevice) DeviceId(org.onosproject.net.DeviceId) TreeSet(java.util.TreeSet) DeviceInterfaceDescription(org.onosproject.net.device.DeviceInterfaceDescription) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) Mode(org.onosproject.net.device.DeviceInterfaceDescription.Mode) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) RestServerSBDevice(org.onosproject.drivers.server.devices.RestServerSBDevice) VlanId(org.onlab.packet.VlanId)

Example 3 with DefaultDeviceInterfaceDescription

use of org.onosproject.net.device.DefaultDeviceInterfaceDescription in project onos by opennetworkinglab.

the class XmlParserCiscoTest method getExpectedIntfs.

private List<DeviceInterfaceDescription> getExpectedIntfs() {
    List<DeviceInterfaceDescription> intfs = new ArrayList<>();
    intfs.add(new DefaultDeviceInterfaceDescription(INTF_NAME_1, DeviceInterfaceDescription.Mode.NORMAL, Lists.newArrayList(), NO_LIMIT, NO_RATE_LIMIT));
    List<VlanId> accessList = new ArrayList<>();
    accessList.add(ACCESS_VLAN);
    intfs.add(new DefaultDeviceInterfaceDescription(INTF_NAME_2, DeviceInterfaceDescription.Mode.ACCESS, accessList, NO_LIMIT, NO_RATE_LIMIT));
    List<VlanId> trunkList1 = new ArrayList<>();
    trunkList1.add(TRUNK_VLAN_1);
    trunkList1.add(TRUNK_VLAN_2);
    intfs.add(new DefaultDeviceInterfaceDescription(INTF_NAME_3, DeviceInterfaceDescription.Mode.TRUNK, trunkList1, NO_LIMIT, NO_RATE_LIMIT));
    intfs.add(new DefaultDeviceInterfaceDescription(INTF_NAME_4, DeviceInterfaceDescription.Mode.NORMAL, Lists.newArrayList(), WITH_LIMIT, RATE_LIMIT_1));
    List<VlanId> trunkList2 = new ArrayList<>();
    trunkList2.add(TRUNK_VLAN_3);
    trunkList2.add(TRUNK_VLAN_4);
    trunkList2.add(TRUNK_VLAN_5);
    intfs.add(new DefaultDeviceInterfaceDescription(INTF_NAME_5, DeviceInterfaceDescription.Mode.TRUNK, trunkList2, WITH_LIMIT, RATE_LIMIT_2));
    return intfs;
}
Also used : DeviceInterfaceDescription(org.onosproject.net.device.DeviceInterfaceDescription) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) ArrayList(java.util.ArrayList) DefaultDeviceInterfaceDescription(org.onosproject.net.device.DefaultDeviceInterfaceDescription) VlanId(org.onlab.packet.VlanId)

Aggregations

VlanId (org.onlab.packet.VlanId)3 DefaultDeviceInterfaceDescription (org.onosproject.net.device.DefaultDeviceInterfaceDescription)3 DeviceInterfaceDescription (org.onosproject.net.device.DeviceInterfaceDescription)3 ArrayList (java.util.ArrayList)1 TreeSet (java.util.TreeSet)1 HierarchicalConfiguration (org.apache.commons.configuration.HierarchicalConfiguration)1 RestServerSBDevice (org.onosproject.drivers.server.devices.RestServerSBDevice)1 NicDevice (org.onosproject.drivers.server.devices.nic.NicDevice)1 DeviceId (org.onosproject.net.DeviceId)1 Mode (org.onosproject.net.device.DeviceInterfaceDescription.Mode)1