/*******************************************************************************
* Copyright (c) 2011, 2016 Eurotech and/or its affiliates
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eurotech
*******************************************************************************/
package org.eclipse.kura.net.wifi;
import java.util.EnumSet;
import java.util.List;
import org.eclipse.kura.net.NetInterface;
/**
* Wifi interface
*
* @param <T>
*/
public interface WifiInterface<T extends WifiInterfaceAddress> extends NetInterface<T> {
/**
* Flags describing the capabilities of a wireless device.
*/
public enum Capability {
/** no capabilities supported */
NONE, /** The device supports the 40-bit WEP cipher. */
CIPHER_WEP40, /** The device supports the 104-bit WEP cipher. */
CIPHER_WEP104, /** The device supports the TKIP cipher. */
CIPHER_TKIP, /** The device supports the CCMP cipher. */
CIPHER_CCMP, /** The device supports the WPA encryption/authentication protocol. */
WPA, /** The device supports the RSN encryption/authentication protocol. */
RSN;
}
/**
* Returns the the capabilities of the wireless device.
*
* @return
*/
public EnumSet<Capability> getCapabilities();
/**
* Returns a List of all InterfaceAddresses of this network interface.
*
* @return a List object with all or a subset of the InterfaceAddresss of this network interface
*/
@Override
public List<T> getNetInterfaceAddresses();
}