aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKim Lilliestierna XX <kim.xx.lilliestierna@stericsson.com>2010-05-10 14:16:54 +0200
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:24 -0600
commit0f900c630625fe380b3ea7fc81edebc5ff4dff78 (patch)
treeff3602b9195978bbf071feef37e0baaba400650a /include
parentd1f6f0d7ed9629237ed73783f5f34a18c4f5c714 (diff)
CAIF: Changes to public include files
Change-Id: I9aa2f67b0427f7c5a56040b08c1d4cc0e345e0f4
Diffstat (limited to 'include')
-rw-r--r--include/linux/caif/caif_config.h70
-rw-r--r--include/linux/caif/caif_ioctl.h68
-rw-r--r--include/linux/caif/caif_socket.h224
-rw-r--r--include/linux/caif/if_caif.h26
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,