3.1.4.18 RRouterInterfaceTransportAdd (Opnum 17)

The RRouterInterfaceTransportAdd method SHOULD<269> add a transport (IPX, IPv4, or IPv6) to a specified interface. Note that if a transport already exists on an interface it cannot be added.

 DWORD RRouterInterfaceTransportAdd(
   [in] DIM_HANDLE hDimServer,
   [in] DWORD hInterface,
   [in] DWORD dwTransportId,
   [in] PDIM_INTERFACE_CONTAINER pInfoStruct
 );

hDimServer: A handle to the RRASM server where the call is to be executed, see section 3.1.3.

hInterface: The unique identifier of an interface. This can be obtained from RRouterInterfaceCreate (section 3.1.4.13) or RRouterInterfaceGetHandle (section 3.1.4.12). Because the RRASM server does not maintain the interface handles, the RRAS server SHOULD check and ensure that this handle represents a valid interface handle.  

dwTransportId: Specifies the transport (IPX, IPv4, or IPv6) and MUST be one of the following values.<270> Otherwise an error, other than those in the return values table, is returned.

Value

Meaning

PID_IPX

0x0000002B

IPX protocol

PID_IP

0x00000021

IPv4 protocol

PID_IPV6

0x00000057

IPv6 protocol

pInfoStruct: This is a pointer of type DIM_INTERFACE_CONTAINER (section 2.2.1.2.2).

pInterfaceInfo and dwInterfaceInfoSize of DIM_INTERFACE_CONTAINER MUST be set to valid values. All other DIM_INTERFACE_CONTAINER fields are ignored.

pInterfaceInfo points to a valid RTR_INFO_BLOCK_HEADER (section 2.2.1.2.3) and RTR_TOC_ENTRY (section 2.2.1.2.4). Otherwise, an error is returned. The RRASM server does not store the interface configurations for the various transports that the RRAS server supports. As part of its processing, the RRAS server SHOULD check that InfoType of RTR_TOC_ENTRY is supported.   

Only a combination of the following entries SHOULD<271> be present in pInterfaceInfo.

Value

Meaning and conditions (interface means the one identified by hInterface)

Structure pointed to at offset

IP_IN_FILTER_INFO

0xFFFF0001

This is the input filter that MUST be applied to IP packets sent to the RRAS server. The information is overwritten. The interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

FILTER_DESCRIPTOR (section 2.2.1.2.5)

IP_OUT_FILTER_INFO

0xFFFF0002

This is the output filter that MUST be applied to IP packets sent from the RRAS server. The information is overwritten. The interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

FILTER_DESCRIPTOR (section 2.2.1.2.5)

IP_INTERFACE_STATUS_INFO

0xFFFF0004

The interface IP status info is overwritten.

INTERFACE_STATUS_INFO (section 2.2.1.2.18)

IP_ROUTER_DISC_INFO

0xFFFF0007

Router discovery information is overwritten.

RTR_DISC_INFO (section 2.2.1.2.14)

IP_MCAST_BOUNDARY_INFO

0xFFFF000B

Multicast boundary information is added.

MIB_BOUNDARYROW (section 2.2.1.2.24)

IP_IFFILTER_INFO

0xFFFF000D

IP interface filter information is overwritten. Interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

IFFILTER_INFO (section 2.2.1.2.88)

IP_MCAST_LIMIT_INFO

0xFFFF000E

Multicast configuration information.

MIB_MCAST_LIMIT_ROW (section 2.2.1.2.16)

IP_ROUTE_INFO

0xFFFF0005

The dwAdminStatus MUST be IF_ADMIN_STATUS_UP if the route information is added.

If bV4 of INTERFACE_ROUTE_INFO is set, it indicates an IPv4 route is added; otherwise, an IPv6 route is added.

INTERFACE_ROUTE_INFO (section 2.2.1.2.11)

IP_IN_FILTER_INFO_V6

0xFFFF0011

This is the input filter that MUST be applied to IPv6 packets sent to the RRAS server. The information is overwritten. The interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

FILTER_DESCRIPTOR_V6 (section 2.2.1.2.7)

IP_OUT_FILTER_INFO_V6

0xFFFF0012

This is the output filter that MUST be applied to IPv6 packets sent from the RRAS server. The information is overwritten. The interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

FILTER_DESCRIPTOR_V6 (section 2.2.1.2.7)

IP_DEMAND_DIAL_FILTER_INFO_V6

0xFFFF0013

IPv6 traffic that matches this filter indicates that a site-to-site connection MUST be available and all IPv6 packets matching this filter MUST be routed into the connection. The interface MUST be of type ROUTER_IF_TYPE_FULL_ROUTER or ROUTER_IF_TYPE_HOME_ROUTER and the filters are overwritten

FILTER_DESCRIPTOR_V6 (section 2.2.1.2.7)

IP_IFFILTER_INFO_V6

0xFFFF0014

IPv6 interface filter information is overwritten. The interface MUST NOT be of type ROUTER_IF_TYPE_INTERNAL, ROUTER_IF_TYPE_LOOPBACK, or ROUTER_IF_TYPE_DIALOUT.

IFFILTER_INFO (section 2.2.1.2.88)

MS_IP_BOOTP

0x0000270F

IP BOOTP interface, information depending.

IPBOOTP_IF_CONFIG (section 2.2.1.2.150)

MS_IP_IGMP

0x4137000A

IGMP interface information.

IGMP_MIB_IF_CONFIG (section 2.2.1.2.174)

MS_IP_RIP

0x00000008

IP RIP interface information.

IPRIP_IF_CONFIG (section 2.2.1.2.166)

MS_IP_DHCP_ALLOCATOR

0x81372714

DHCP allocator interface information.

Used only with RRouterInterfaceTransportSetGlobalInfo (section 3.1.4.10).

IP_AUTO_DHCP_INTERFACE_INFO (section 2.2.1.2.192)

MS_IP_DNS_PROXY

0x81372713

DNS proxy interface information.

IP_DNS_PROXY_INTERFACE_INFO (section 2.2.1.2.194)

MS_IP_NAT

0x81372715

IP NAT interface information.

IP_NAT_INTERFACE_INFO (section 2.2.1.2.197)

MS_IP_OSPF<272>

0x0000000D

OSPF interface information is added.

OSPF_INTERFACE_PARAM (section 2.2.1.2.215)

MS_IPV6_DHCP

0x000003E7

DHCPv6 Relay interface information.

DHCPV6R_IF_CONFIG (section 2.2.1.2.159)

Return Values: A 32-bit, unsigned integer value that indicates return status. A return value of ERROR_SUCCESS (0x00000000) indicates that the operation was completed successfully; otherwise it contains an error code, as specified in [MS-ERREF] or in section 2.2.4. All values not in the following table MUST be treated the same by the RRASM client.

Return value/code

Description

ERROR_SUCCESS

0x00000000

The call was successful.

ERROR_ACCESS_DENIED

0x00000005

The calling application does not have sufficient privileges, as specified in 2.1.1.1.

The opnum field value for this method is 17.

 When processing this call, the RRASM server MUST do the following:

  • Validate, as specified in 2.1.1.1, whether this method was called by a client that has access to the method. If the client does not have access, then return error ERROR_ACCESS_DENIED (0x00000005).

  • If pInfoStruct is NULL, return an error other than those in the preceding table.

  • If dwTransportId is not specified in the SupportedTransportsList, return an error other than those specified in the preceding table.

  • Call the abstract interface Invoke DIMSVC method specifying the operation and the parameters to enable RRAS server to perform the required management task.

  • Return any error status provided by the RRAS server processing. Otherwise return ERROR_SUCCESS (0x00000000).

No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].