diff options
author | Kim Lilliestierna XX <kim.xx.lilliestierna@stericsson.com> | 2010-05-10 14:16:54 +0200 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:24 -0600 |
commit | 0f900c630625fe380b3ea7fc81edebc5ff4dff78 (patch) | |
tree | ff3602b9195978bbf071feef37e0baaba400650a /include | |
parent | d1f6f0d7ed9629237ed73783f5f34a18c4f5c714 (diff) |
CAIF: Changes to public include files
Change-Id: I9aa2f67b0427f7c5a56040b08c1d4cc0e345e0f4
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/caif/caif_config.h | 70 | ||||
-rw-r--r-- | include/linux/caif/caif_ioctl.h | 68 | ||||
-rw-r--r-- | include/linux/caif/caif_socket.h | 224 | ||||
-rw-r--r-- | include/linux/caif/if_caif.h | 26 |
4 files changed, 230 insertions, 158 deletions
diff --git a/include/linux/caif/caif_config.h b/include/linux/caif/caif_config.h index 8b0b9ab475e..2fb1cb3d6a3 100644 --- a/include/linux/caif/caif_config.h +++ b/include/linux/caif/caif_config.h @@ -1,29 +1,38 @@ /* * CAIF Channel Configuration definitions. - * Copyright (C) ST-Ericsson AB 2009 + * Copyright (C) ST-Ericsson AB 2010 * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com * License terms: GNU General Public License (GPL) version 2 */ #ifndef CAIF_CONFIG_H_ #define CAIF_CONFIG_H_ +#include <linux/caif/caif_socket.h> +/* + * This file is here for legacy reasons, definitions + * in this files should be replaced with types from + * caif_socket.h + */ -/** - * enum caif_phy_preference - Types of physical HW interfaces - * towards modem defined in CAIF stack - * @CAIF_PHYPREF_UNSPECIFIED: Default physical interface +/* + * enum caif_phy_preference - Class of CAIF Link Layer. + * @CAIF_PHYPREF_UNSPECIFIED: Default physical interface. * @CAIF_PHYPREF_LOW_LAT: Default physical interface for low-latency - * traffic + * traffic. * @CAIF_PHYPREF_HIGH_BW: Default physical interface for high-bandwidth - * traffic + * traffic. * @CAIF_PHYPREF_LOOP: TEST Loopback interface, simulating modem - * responses + * responses. * - * For client convenience, two special types are defined: + * For client convenience, two special types are defined * CAIF_PHYPREF_LOW_LAT is the preferred low-latency physical link. * Typically used for "control" purposes. * CAIF_PHYPREF_HIGH_BW is the preferred high-bandwidth physical link. * Typically used for "payload" purposes. + * + * TODO: + * This enum should go away and be replaced by enum + * caif_link_selector defined in caif_socket.h */ enum caif_phy_preference { CAIF_PHYPREF_UNSPECIFIED, @@ -32,19 +41,8 @@ enum caif_phy_preference { CAIF_PHYPREF_LOOP }; -/* - * Define CAIF channel priority. - * Used when setting up a channel to specify the - * priority level of the channel. - */ -#define CAIF_PRIO_MIN 0x01 /* Min priority for a channel */ -#define CAIF_PRIO_LOW 0x04 /* low-priority channel. */ -#define CAIF_PRIO_NORMAL 0x0f /* normal/default priority level. */ -#define CAIF_PRIO_HIGH 0x14 /* high priority level */ -#define CAIF_PRIO_MAX 0x1F /* Max priority for channel */ - -/** +/* * enum caif_channel_type - Types of CAIF channel type defined in CAIF Stack. * @CAIF_CHTY_AT: Classical AT * @CAIF_CHTY_AT_CTRL: AT control only @@ -61,6 +59,10 @@ enum caif_phy_preference { * Params: fifo_kb,fifo_pkt, name, psock_param * * This is used for channel configuration, specifying the type of channel. + * + * TODO: + * This enum should go away and be replaced by + * enum caif_protoco_type defined in caif_socket.h */ enum caif_channel_type { CAIF_CHTY_AT, @@ -76,7 +78,7 @@ enum caif_channel_type { CAIF_CHTY_UTILITY }; -/** +/* *struct caif_channel_config - This structure is used for configuring * CAIF channels. * @name: Mandatory - Nickname for this device @@ -92,29 +94,43 @@ enum caif_channel_type { * parameters * * @u.dgm: CAIF_CHTYPE_DATAGRAM + * * @u.dgm.connection_id: Mandatory - Connection ID must be specified. * + * * @u.video: CAIF_CHTYPE_VIDEO + * * @u.video.connection_id: Mandatory - Connection ID must be specified. * * @u.rfm CAIF_CHTYPE_RFM + * * @u.rfm.connection_id: Mandatory - Connection ID must be specified. + * * @u.rfm.volume: Mandatory - Volume to mount. * * @u.utility: CAIF_CHTYPE_UTILITY + * * @u.utility.fifosize_kb: Psock: FIFO size in KB + * * @u.utility.fifosize_bufs: Psock: Number of signal buffers + * * @u.utility.name: Psock: Name of service + * * @u.utility.params: Psock: Channel config parameters + * * @u.utility.paramlen: Psock: Length of channel config parameters * * * It holds configuration parameters for setting up all defined CAIF * channel types. * The four first fields are mandatory, then physical interface can be specified - * either by name or by prefered characteristics. + * either by name or by preferred characteristics. * The rest of the configuration fields are held in a union for each * channel type and are channel type specific. + * + * TODO: + * This struct should go away and be replaced by + * struct sockadd_caif in caif_socket.h */ struct caif_channel_config { char name[16]; @@ -122,25 +138,17 @@ struct caif_channel_config { unsigned priority; enum caif_phy_preference phy_pref; char phy_name[16]; - - /** Union of channel type-specific configuration parameters. - * 'switched' by attribute type. - */ union { - /* CAIF_CHTYPE_DATAGRAM */ struct { unsigned connection_id; } dgm; - /* CAIF_CHTYPE_VIDEO */ struct { unsigned connection_id; } video; - /* CAIF_CHTYPE_RFM */ struct { unsigned connection_id; char volume[20]; } rfm; - /* CAIF_CHTYPE_UTILITY */ struct { unsigned fifosize_kb; unsigned fifosize_bufs; diff --git a/include/linux/caif/caif_ioctl.h b/include/linux/caif/caif_ioctl.h index a42adf5da0b..ff367028cc7 100644 --- a/include/linux/caif/caif_ioctl.h +++ b/include/linux/caif/caif_ioctl.h @@ -1,6 +1,6 @@ /* - * Copyright (C) ST-Ericsson AB 2009 - * Author: Daniel Martensson / Daniel.Martensson@stericsson.com + * Copyright (C) ST-Ericsson AB 2010 + * Author: Sjur Brendeland / sjur.brandeland@stericsson.com * License terms: GNU General Public License (GPL) version 2 */ @@ -8,26 +8,26 @@ #define CAIF_IOCTL_H_ #include <linux/caif/caif_config.h> -/*!\page caif_ioctl.h +/* * This file defines the management interface to CAIF. * It defines how CAIF channels are configured and become visible in the * Linux file system, typically under "/dev". * - *\b Example - creating a new AT character device: - * \code - fd = open("/dev/caifconfig",..); - struct caif_channel_create_action at_config = { - .name = "cnhl2", - .config = { - .channel = CAIF_CHTY_AT, - .phy_ref = CAIF_PHY_LOW_LAT, - .priority = CAIF_PRIO_HIGH - }}; - ioctl(fd, CAIF_IOC_CONFIG_DEVICE,&at_config); - close(fd); - * \endcode + * EXAMPLE: Creating a new AT character device: + * + * fd = open("/dev/caifconfig",..); + * struct caif_channel_create_action at_config = { + * .name = "cnhl2", + * .config = { + * .channel = CAIF_CHTY_AT, + * .phy_ref = CAIF_PHY_LOW_LAT, + * .priority = CAIF_PRIO_HIGH + * }}; + * ioctl(fd, CAIF_IOC_CONFIG_DEVICE,&at_config); + * close(fd); + * * This will cause a new AT channel to be available in at "/dev/chnl2". - * This CAIF channel can then be connected by using \ref open. + * This CAIF channel can then be connected by using open. */ #define CAIF_IOC_MAGIC 'g' @@ -39,53 +39,49 @@ enum caif_dev_type { CAIF_DEV_NET = 2 }; -/** Used for identifying devices, PHY interfaces, etc.*/ +/* Used for identifying devices, PHY interfaces, etc.*/ struct caif_device_name { char name[DEVICE_NAME_LEN]; /*!< Device name */ enum caif_dev_type devtype; /*!< Device type */ }; -/** - * CAIF ACTION for \ref CAIF_ACT_CHANNEL_CONFIG. +/* + * struct caif_channel_create_action - CAIF ACTION for CAIF_ACT_CHANNEL_CONFIG. + * * This structure is used to configure a new CAIF Channel and * create the corresponding character device. + * + * @config: CAIF configuration request. + * @name: Device name returned from ACTION + * @major: Major device id + * @minor: Minor device id */ struct caif_channel_create_action { - /** \b in CAIF configuration request */ struct caif_channel_config config; - /** \b in/out Device name returned from ACTION */ struct caif_device_name name; - /** \b out Major device id */ int major; - /** \b out Minor device id */ int minor; }; -/** - * union caif_action - * This union is used to create and delete CAIF channels. +/* + * union caif_action - This union is used to create and delete CAIF channels. */ union caif_action { struct caif_device_name delete_channel; struct caif_channel_create_action create_channel; }; -/** - * CAIF IOCTL for \ref CAIF_IOC_CHANNEL_CONFIG. - * This structure is used to configure a new CAIF Channel and - * create the corresponding character device. - */ - -/** Create and Configure a new CAIF device. +/* + * Create and Configure a new CAIF device. * Note that the device is not implicitly connected. */ #define CAIF_IOC_CONFIG_DEVICE _IOWR(CAIF_IOC_MAGIC, 1,\ struct caif_channel_create_action) -/** Remove a CAIF device. Requires the device to be previously disconnected. */ +/* Remove a CAIF device. Requires the device to be previously disconnected. */ #define CAIF_IOC_REMOVE_DEVICE _IOWR(CAIF_IOC_MAGIC, 2,\ struct caif_device_name) + #define CAIF__IOC_MAXNR 9 -/*! @} */ #endif /* CAIF_IOCTL_H_ */ diff --git a/include/linux/caif/caif_socket.h b/include/linux/caif/caif_socket.h index aa32120774f..3f2029dca42 100644 --- a/include/linux/caif/caif_socket.h +++ b/include/linux/caif/caif_socket.h @@ -1,6 +1,6 @@ /* linux/caif_socket.h * CAIF Definitions for CAIF socket and network layer - * Copyright (C) ST-Ericsson AB 2009 + * Copyright (C) ST-Ericsson AB 2010 * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com * License terms: GNU General Public License (GPL) version 2 */ @@ -8,33 +8,24 @@ #ifndef _LINUX_CAIF_SOCKET_H #define _LINUX_CAIF_SOCKET_H -#ifdef __KERNEL__ #include <linux/types.h> + +#ifdef __KERNEL__ #include <linux/socket.h> #else -#include <sys/types.h> #include <sys/socket.h> #endif -#ifdef __cplusplus -extern "C" { -#endif -#ifndef AF_CAIF // TODO: Move these def to /usr/include/linux/socket.h -#define AF_CAIF 28 /* CAIF Socket Address Family */ -#endif /* AF_CAIF */ -#ifndef PF_CAIF // TODO: Move these def to /usr/include/linux/socket.h -#define PF_CAIF AF_CAIF /* CAIF Socket Protocol Family */ -#endif /*PF_CAIF*/ -#ifndef SOL_CAIF // TODO: Move these def to /usr/include/linux/socket.h -#define SOL_CAIF 278 /* CAIF Socket Option Level */ -#endif /* SOL_CAIF */ - /** - * enum caif_link_selector - Physical Link Selection. - * @CAIF_LINK_HIGH_BANDW: Default physical interface for high-bandwidth + * enum caif_link_selector - Physical Link Selection. + * @CAIF_LINK_HIGH_BANDW: Physical interface for high-bandwidth * traffic. - * @CAIF_LINK_LOW_LATENCY: Default physical interface for low-latency + * @CAIF_LINK_LOW_LATENCY: Physical interface for low-latency * traffic. + * + * CAIF Link Layers can register their link properties. + * This enum is used for choosing between CAIF Link Layers when + * setting up CAIF Channels when multiple CAIF Link Layers exists. */ enum caif_link_selector { CAIF_LINK_HIGH_BANDW, @@ -42,12 +33,41 @@ enum caif_link_selector { }; /** - * enum caif_protocol_type - Types of CAIF protocols in the CAIF Stack. + * enum caif_channel_priority - CAIF channel priorities. + * + * @CAIF_PRIO_MIN: Min priority for a channel. + * @CAIF_PRIO_LOW: Low-priority channel. + * @CAIF_PRIO_NORMAL: Normal/default priority level. + * @CAIF_PRIO_HIGH: High priority level + * @CAIF_PRIO_MAX: Max priority for channel + * + * Priority can be set on CAIF Channels in order to + * prioritize between traffic on different CAIF Channels. + * These priority levels are recommended, but the priority value + * is not restricted to the values defined in this enum, any value + * between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used. + */ +enum caif_channel_priority { + CAIF_PRIO_MIN = 0x01, + CAIF_PRIO_LOW = 0x04, + CAIF_PRIO_NORMAL = 0x0f, + CAIF_PRIO_HIGH = 0x14, + CAIF_PRIO_MAX = 0x1F +}; + +/** + * enum caif_protocol_type - CAIF Channel type. * @CAIFPROTO_AT: Classic AT channel. - * @CAIFPROTO_DATAGRAM: Datagram channel. + * @CAIFPROTO_DATAGRAM: Datagram channel. * @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing. * @CAIFPROTO_UTIL: Utility (Psock) channel. * @CAIFPROTO_RFM: Remote File Manager +//deprecated-functionality-below + * @CAIFPROTO_DEBUG: Debug link +//deprecated-functionality-above + * + * This enum defines the CAIF Channel type to be used. This defines + * the service to connect to on the modem. */ enum caif_protocol_type { CAIFPROTO_AT, @@ -55,6 +75,9 @@ enum caif_protocol_type { CAIFPROTO_DATAGRAM_LOOP, CAIFPROTO_UTIL, CAIFPROTO_RFM, +//deprecated-functionality-below + CAIFPROTO_DEBUG, +//deprecated-functionality-above _CAIFPROTO_MAX }; #define CAIFPROTO_MAX _CAIFPROTO_MAX @@ -64,108 +87,153 @@ enum caif_protocol_type { * @CAIF_ATTYPE_PLAIN: Connects to a plain vanilla AT channel. */ enum caif_at_type { - CAIF_ATTYPE_PLAIN + CAIF_ATTYPE_PLAIN = 2 +}; +//deprecated-functionality-below +/** + * enum caif_debug_type - AT Service Endpoint + * @CAIF_DEBUG_TRACE: Connects to debug trace service + * @CAIF_DEBUG_INTERACTIVE: Connects to interactive debug + * (and trace) service. + */ +enum caif_debug_type { + CAIF_DEBUG_TRACE_INTERACTIVE = 0, + CAIF_DEBUG_TRACE, + CAIF_DEBUG_INTERACTIVE, +}; + +/** + * enum caif_debug_service - AT Service Endpoint + * @CAIF_RADIO_DEBUG_SERVICE: Debug service on the Radio sub-system + * @CAIF_APP_DEBUG_SERVICE: Debug for the applications sub-system + */ +enum caif_debug_service { + CAIF_RADIO_DEBUG_SERVICE = 1, + CAIF_APP_DEBUG_SERVICE }; +//deprecated-functionality-above /** * struct sockaddr_caif - the sockaddr structure for CAIF sockets. * @family: Address family number, must be AF_CAIF. - * @u: Union of address data 'switched' by familty. - * @at: Applies when family = CAIFPROTO_AT. - * @at.type: Type of AT link to set up (enum caif_at_type). - * @util: Applies when family = CAIFPROTO_UTIL - * @util.service: Service name. - * @dgm: Applies when family = CAIFPROTO_DATAGRAM - * @dgm.connection_id: Datagram connection id. - * @dgm.nsapi: NSAPI of the PDP-Context. - * @rfm: Applies when family = CAIFPROTO_RFM - * @rfm.connection_id: Connection ID for RFM. - * @rfm.volume: Volume to mount. + * @u: Union of address data 'switched' by family. + * : + * @u.at: Applies when family = CAIFPROTO_AT. + * + * @u.at.type: Type of AT link to set up (enum caif_at_type). + * + * @u.util: Applies when family = CAIFPROTO_UTIL + * + * @u.util.service: Utility service name. + * + * @u.dgm: Applies when family = CAIFPROTO_DATAGRAM + * + * @u.dgm.connection_id: Datagram connection id. + * + * @u.dgm.nsapi: NSAPI of the PDP-Context. + * + * @u.rfm: Applies when family = CAIFPROTO_RFM + * + * @u.rfm.connection_id: Connection ID for RFM. + * + * @u.rfm.volume: Volume to mount. + * +//deprecated-functionality-below + * @u.dbg: Applies when family = CAIFPROTO_AT. + * + * @u.dbg.type: Type of debug link to set up (caif_debug_type). +//deprecated-functionality-above + * Description: + * This structure holds the connect parameters used for setting up a + * CAIF Channel. It defines the service to connect to on the modem. */ struct sockaddr_caif { sa_family_t family; union { struct { - u_int8_t type; /* type: enum caif_at_type */ + __u8 type; /* type: enum caif_at_type */ } at; /* CAIFPROTO_AT */ struct { char service[16]; } util; /* CAIFPROTO_UTIL */ union { - u_int32_t connection_id; - u_int8_t nsapi; + __u32 connection_id; + __u8 nsapi; } dgm; /* CAIFPROTO_DATAGRAM(_LOOP)*/ struct { - u_int32_t connection_id; + __u32 connection_id; char volume[16]; } rfm; /* CAIFPROTO_RFM */ +//deprecated-functionality-below + struct { + __u8 type; /* type:enum caif_debug_type */ + __u8 service; /* service:caif_debug_service */ + } dbg; /* CAIFPROTO_DEBUG */ +//deprecated-functionality-above } u; }; - +//deprecated-functionality-below /** * struct caif_channel_opt - CAIF channel connect options. * @priority: Priority of the channel (between 0 and 0x1f) * @link_selector: Selector for the physical link. - * (see enum caif_phy_preference in caif_config.h) + * (see enum caif_link_selector) * @link_name: Physical link to use. This is the instance name of the * CAIF Physical Driver. */ struct caif_channel_opt { - u_int16_t priority; - u_int16_t link_selector; - char link_name[16]; + __u16 priority; + __u16 link_selector; + char link_name[16]; }; +//deprecated-functionality-above /** - * struct caif_param - CAIF parameters. - * @size: Length of data - * @data: Binary Data Blob - */ -struct caif_param { - u_int16_t size; - u_int8_t data[256]; -}; - - -/** enum caif_socket_opts - CAIF option values for getsockopt and setsockopt - * @CAIFSO_CHANNEL: Used to set the connect options on a CAIF - * socket. (struct caif_config_opt). This can only - * be set before connecting. + * enum caif_socket_opts - CAIF option values for getsockopt and setsockopt. + * + * @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are + * available. Either a high bandwidth + * link can be selected (CAIF_LINK_HIGH_BANDW) or + * or a low latency link (CAIF_LINK_LOW_LATENCY). + * This option is of type __u32. + * Alternatively SO_BINDTODEVICE can be used. + * * @CAIFSO_REQ_PARAM: Used to set the request parameters for a - * utility channel. (struct caif_param). This - * can only be set before connecting. + * utility channel. (maximum 256 bytes). This + * option must be set before connecting. * - * @CAIFSO_RSP_PARAM: Gets the request parameters for a utility - * channel. (struct caif_param). This can only be - * fetched after connecting the socket. + * @CAIFSO_RSP_PARAM: Gets the response parameters for a utility + * channel. (maximum 256 bytes). This option + * is valid after a successful connect. + * + *deprecated-functionality-below + * @CAIFSO_CHANNEL_ID: Gets the channel id of a CAIF Channel. + * This option is valid after a successful connect. + * ( __u32) * * @CAIFSO_UTIL_FLOW: Sets the utility channels flow options. * This can only be set before connecting. * (struct caif_util_modem_flow_opt) * - * @CAIFSO_CONN_ID: Gets the channel id on a CAIF Channel. - * This can only be done after connect. - * ( u_int32_t) + * DEPRECEATED: Replaced by CAIFSO_LINK_SELECT,SO_PRIORITY and SO_BINDTODEVICE + * @CAIFSO_CHANNEL: Used to set the connect options on a CAIF + * socket. (struct caif_config_opt). This can only + * be set before connecting. + *deprecated-functionality-above * - * @CAIFSO_NEXT_PAKCET_LEN: Gets the size of next received packet. - * Value is 0 if no packet is available. - * This can only be done after connect. - * ( u_int32_t) + * This enum defines the CAIF Socket options to be used on a socket + * of type PF_CAIF. * - * @CAIFSO_MAX_PAKCET_LEN: Gets the maximum packet size for this - * connection. ( u_int32_t) */ enum caif_socket_opts { - CAIFSO_CHANNEL_CONFIG = 127, + CAIFSO_LINK_SELECT = 127, CAIFSO_REQ_PARAM = 128, CAIFSO_RSP_PARAM = 129, - CAIFSO_UTIL_FLOW = 130, - CAIFSO_CONN_ID = 131, - CAIFSO_NEXT_PACKET_LEN = 132, - CAIFSO_MAX_PACKET_LEN = 133, +//deprecated-functionality-below + CAIFSO_CHANNEL_ID = 130, + CAIFSO_UTIL_FLOW = 131, + CAIFSO_CHANNEL_CONFIG = 132, +//deprecated-functionality-above }; -#ifdef __cplusplus -} /* extern "C" */ -#endif #endif /* _LINUX_CAIF_SOCKET_H */ diff --git a/include/linux/caif/if_caif.h b/include/linux/caif/if_caif.h index c374a9e055c..6e304e10309 100644 --- a/include/linux/caif/if_caif.h +++ b/include/linux/caif/if_caif.h @@ -1,5 +1,5 @@ /* - * Copyright (C) ST-Ericsson AB 2009 + * Copyright (C) ST-Ericsson AB 2010 * Author: Sjur Brendeland/ sjur.brandeland@stericsson.com * License terms: GNU General Public License (GPL) version 2 */ @@ -9,13 +9,12 @@ #include <linux/sockios.h> #include <linux/types.h> #include <linux/socket.h> - +//deprecated-functionality-below /** - * enum sioc_caif - SOCKIO for creating new CAIF Net Devices. + *enum sioc_caif - SOCKIO for creating new CAIF Net Devices. * @SIOCCAIFNETNEW: Used to create a new instance of the CAIF IP Interface. * struct ifreq containing struct ifcaif_param are used * as parameters. ifr_name must be filled in. - * @SIOCCAIFNETCHANGE: As above, but changes a disconnected CAIF IP Inteface. * @SIOCCAIFNETREMOVE: Removes a CAIF IP Interface. * * CAIF IP Interface can be created, changed and deleted, @@ -25,42 +24,43 @@ */ enum sioc_caif { SIOCCAIFNETNEW = SIOCPROTOPRIVATE, - SIOCCAIFNETCHANGE, SIOCCAIFNETREMOVE }; - +#define SIOCCAIFMAX SIOCCAIFNETREMOVE /** * struct ifcaif_param - Parameters for creating CAIF Network Interface. + * @ipv4_connid: Connection ID for IPv4 PDP Context. + * @ipv6_connid: Connection ID for IPv6 PDP Context. + * @loop: If different from zero, device is doing loopback * * When using SIOCCAIFNETNEW to create a CAIF IP interface, this structure * is used for configuration data. * The attribute ifr_ifru.ifru_data in struct struct ifreq must be set * point at an instance of struct ifcaif_param. * - * @ipv4_connid: Connection ID for IPv4 PDP Context. - * @ipv6_connid: Connection ID for IPv6 PDP Context. - * @loop: If different from zero, device is doing loopback */ struct ifcaif_param { __u32 ipv4_connid; __u32 ipv6_connid; __u8 loop; }; +//deprecated-functionality-above /** - * enum ifla_caif - * When using RT Netlink to create, destroy or configure a CAIF IP interface, - * enum ifla_caif is used to specify the configuration attributes. - * + * enum ifla_caif - CAIF NetlinkRT parameters. * @IFLA_CAIF_IPV4_CONNID: Connection ID for IPv4 PDP Context. * The type of attribute is NLA_U32. * @IFLA_CAIF_IPV6_CONNID: Connection ID for IPv6 PDP Context. * The type of attribute is NLA_U32. * @IFLA_CAIF_LOOPBACK: If different from zero, device is doing loopback * The type of attribute is NLA_U8. + * + * When using RT Netlink to create, destroy or configure a CAIF IP interface, + * enum ifla_caif is used to specify the configuration attributes. */ enum ifla_caif { + __IFLA_CAIF_UNSPEC, IFLA_CAIF_IPV4_CONNID, IFLA_CAIF_IPV6_CONNID, IFLA_CAIF_LOOPBACK, |