Location:
in_sock.h
class TSoInet6InterfaceInfo : public TSoInetInterfaceInfo;
Extension for TSoInetInterfaceInfo
. Available in Symbian OS v7.0 and later.
Used with the following interface level KSolInetIfCtrl
options:
The following configuration changes are only activated with KSoInetConfigInterface
and KSoInetChangeInterface
options. For these two, the extension specifies the details of actions to be performed. The extesion is a collection of control
bits, which can be grouped as
actions: iDoState
, iDoId
(with subactions iDoAnycast
or iDoProxy
) and iDoPrefix
.
The effect of the modifiers depend on the chosen action (in some actions modifiers are ignored). The iDoState can be combined with any other actions, but for the remaining only the following combinations are valid:
no address configuration: iDoId=0, iDoPrefix=0 (iDoProxy, iDoAnycast, iDelete and iAlias are ignored).
configure single IPv6 or IPv4 address: iDoid, iAddress has the address, iNetMask unspecified.
configure IPv6 id part: iDoId, iAddress is IPv6 address (fe80::id
) and iNetMask defined (for 64 bits, use ffff:ffff:ffff:ffff::
).
configure IPv4 address and netmask: iDoId, iNetMask defined.
configure IPv6 or IPv4 anycast address: iDoId, iDoAnycast, iAddress has the address (iNetMask ignored).
configure IPv6 or IPv4 proxy address: iDoId, iDoProxy, iAddress has the address (iNetMask ignored).
configure IPv6 prefix and id part: iDoId, iDoPrefix, iAddress is the IPv6 address (prefix::id) and iNetMask defined (for 64
bits, use ffff:ffff:ffff:ffff::
).
configure IPv6 prefix: iDoPrefix, iAddress is the prefix (prefix::) and iNetMask defined (for 64 bits, use ffff:ffff:ffff:ffff::
).
The default route is processed if iDefGate
is specified. If the gateway address is an IPv4 address, then it defines IPv4 default route. Additionally, if the iDefGate
is same as iAddress, then this is interpreted as a request to treat the default route as "onlink route" instead of the normal
gateway route . iDelete
modifier controls whether default route is added or deleted.
The MTU is updated, if iMtu
has non-zero value.
TSoInetInterfaceInfo
- Used when listing interfaces with socket option
TSoInet6InterfaceInfo
- Extension for
Defined in TSoInet6InterfaceInfo
:
iAlias
, iDelete
, iDoAnycast
, iDoId
, iDoPrefix
, iDoProxy
, iDoState
Inherited from TSoInetInterfaceInfo
:
iAddress
,
iBrdAddr
,
iDefGate
,
iFeatures
,
iHwAddr
,
iMtu
,
iName
,
iNameSer1
,
iNameSer2
,
iNetMask
,
iSpeedMetric
,
iState
,
iTag
TUint iDelete;
Add or delete modifier.
0 = add, 1 = delete
Modifies the actions for address configuration (iDoId
, iDoPrefix
) and iDefGate processing (see detail descripton above).
TUint iAlias;
Primary or alias modifier.
0 = primary, 1 = alias.
Note: Always use 1 here (this is a relic, that most likely should be deprecated, and defaulted to 1 always).
TUint iDoPrefix;
Prefix action (only for IPv6 addresses).
0 = don't do prefix, 1 = do the prefix.
iAddress
must be specified.
If set and iNetMask is defined, then iNetMask
and iAddress
define a prefix for the interface (link). If iNetMask is unspecified, then the iDoPrefix is ignored.
iDelete=0: Acts as if an IPv6 Router Advertisement with prefix option A=1 and L=1 has arrived (e.g. this prefix can be used in address generation and all addresses with this prefix are onlink on this interface).
iDelete=1: The specified prefix is deleted from the interface (if it existed before).
Note: Current IPv6 specification allows only 64 for the number of prefix bits.
TUint iDoId;
Address action.
0 = don't do address, 1= do the address.
iAddress
must be specified.
Note: If also either iDoAnycast
or iDoProxy
is set, then the action is special for them (and the following does not apply).
If iNetMask
is unspecified, then iAddress
defines a single address (either IPv4 or IPv6) which is to be added or removed, depending on the state of the iDelete
modifier. iAlias
is ignored.
If iNetMask
is specified, then the following applies:
iDelete=0 and iAddress is IPv4 address: iAddress and iNetMask are used to configure additional IPv4 address and netmask for the interface.
iDelete=0 and iAddress is IPv6 address The iNetmask and iAddress define a ID part, which can be combined with any defined prefix to form a full IPv6 address. If iAlias is set, then a new ID is added; otherwise whatever happens to be stored in the primary id slot is overwritten (always use iAlias=1 to avoid confusion).
iDelete=1: The previously configured address or ID is deleted.
Note: The IPv4 netmask alone cannot be added or deleted. Use KSolInetRtCtrl
options.
TUint iDoState;
Interface state action.
0 = ignore TSoInetInterfaceInfo::iState
,
1 = set interface state based on TSoInetInterfaceInfo::iState
as follows:
EIfDown: The interface state is set to KErrNotReady.
EIfUp: The interface state is set to 0 (KErrNone).
Attempt to set any other state results failed operation with KErrArgument result.
TUint iDoAnycast;
Configure address as Anycast.
The anycast address is defined by iAddress
.
Anycast address is recognized as own address for incoming packets, but it cannot be used as a source address for outgoing packets. IPv6 DAD (or IPv4 ARP duplicate address) test is not done for anycast addresses. Anycast address is advertised on the link as an address of this host.
1 = configure anycast (iDoId
must also be set, iDoPrefix
is ignored)
iDelete=0: Add anycast address.
iDelete=1: Remove the previously configured anycast address.
TUint iDoProxy;
Confiture address as Proxy.
The proxy address is defined by iAddress
.
Proxy address is not recognized as own address for incoming packets (nor can it be used as own address for outgoing packets). IPv6 DAD (or IPv4 ARP duplicate address) test is performed for proxy address. Proxy address is advertised on the link as an address of this host.
1 = configure proxy (iDoId
must also be set, iDoPrefix
is ignored)
iDelete=0: Add proxy address.
iDelete=1: Remove the previously configured proxy address.