pppcontrold Daemon

Purpose

Controls startup and management of the PPP (Point to Point Protocol) subsystem.

Syntax

To Start and Stop by Using the System Resource Controller:

startsrc -s pppcontrold

stopsrc -s pppcontrold

Description

The pppcontrold daemon reads in the /etc/ppp/lcp_config and /etc/ppp/if_conf files to install and configure the PPP subsystem. SMIT should be used to generate both /etc/ppp/lcp_config and /etc/ppp/if_conf. To modify these files the user must have root authority or be a member of the uucp group. The configuration files are read at initialization where the appropriate streams modules are configured and loaded, and the tcpip network interface layers are installed into the system. After configuring the subsystem, the pppcontrold daemon monitors the streams associated with the IP and IPv6 interfaces to perform operations such as setting IP addresses, and the flags of the IP and IPv6 interface. The pppcontrold daemon terminates upon reciept of SIGTERM or when the stopsrc command is invoked. The prefered method of starting and stopping the pppcontrold daemon is with SRC (System Resource Controller). You must have root authority to run the src commands.

Errors and messages are logged using the syslog facility.

The pppcontrold daemon creates the /etc/ppp/pppcontrold.pid file, which contains a single line with the command process ID used to terminate the pppcontrold daemon.

Flags

None

/etc/ppp/lcp_config File

This file provides the configuration information required for the subsystem. These values are used to ensure proper allocation of storage at the time the subsystem is configured. It is important to configure just what is needed since these values define storage that is allocated within the kernel. Blank lines and lines beginning with a # (pound sign) are ignored in the configuration file. Do not use blank lines or lines beginning with # (pound sign) within the interface definition. Only use these lines between interface definitions.

Required Keywords  
server_name name Name of this system. This name should be unique to the system. Ensure that the first 20 bytes of the name are unique.
lcp_server # Number of server connections. Represents the number of server connections that the subsystem will allow. Storage for all specified connections is allocated at the time the subsystem is configured. The minimum value is 0 and the maximum value is gated by the amount of memory in the system.
lcp_demand # Specify the maximum number of demand links that you want the PPP LCP multiplexor to support. Set this value to the number of demand interfaces that you expect to configure. The default value is 0.
lcp_client # Number of client connections. The minimum value is 0 and the maximum value is gated by the amount of memory in the system. Client connections are IP and IPv6 interfaces configured without addresses.
num_if # Number of IP and IPv6 interfaces to configure. Must be less than or equal to lcp_server + lcp_client.
num_if6 # Maximum number of TCP/IPv6 interfaces to allow. The value is a decimal number. This number, along with "max ip interfaces" and "max ip & ipv6 interfaces", cannot be greater than total maximum number of server, client and demand links (max server links + max client links + max demand links = max ip interfaces + max ipv6 interfaces + max ip & ipv6 interfaces). When a machine is used solely as a client connecting up to one server, this field would be set to 1. On a server, this field would be set to the maximum number of IPv6 clients that can simultaneously connect to the server. In this case, make sure that you have enough IPv6 interfaces defined.
num_if_and_if6 # Maximum number of TCP/IP and IPv6 interfaces to allow. The value is a decimal number. This number along with "max ip interfaces" and "max ipv6 interfaces" cannot be greater than total maximum number of server, client and demand links (max server links + max client links + max demand links = max ip interfaces + max ipv6 interfaces + max ip & ipv6 interfaces). When a machine is used solely as a client connecting up to one server, this field would be set to 1. On a server, this field would be set to the maximum number of IP and IPv6 clients that can simultaneously connect to the server. In this case, make sure that you have enough IP and IPv6 interfaces defined.
num_hdlc # Maximum number of concurrent asynchronous PPP sessions (server, client and demand) that can be active. This field is a decimal number. The value can not be greater than the total maximum number of server, client and demand links ( [max server connections + max client connections + max demand connections] = max async hdlc attachments = [max ip interfaces + max ipv6 interfaces + max ip & ipv6 interfaces] ).
Optional Keywords  
   

These keywords will override the global default LCP options.

Item Description
txacm 0xXXXXXXXX Transmit Asynchronous Character Map.
-negacm Do not negotiate async character mapping. Rejects the peers configuration information frames that contains this option.
-negmru Do not negotiate MRU (Maximum Receive Unit). Rejects the peers configuration information frames that contains this option.
mru # MRU desired. A default is 1500.
-negacf Do not negotiate ACF (address control field) compression. ACF will not be compressed. Rejects the peers configuration information frames that contain this option.
-negprotocolcompress Do not negotiate protocol compression. Normally, the PPP protocol field will be compressed by one byte for Network protocols. This disables negotiation of this option for both receiving and sending frames.

/etc/ppp/if_conf File

This file defines all the server TCP/IP interfaces. Blank lines and lines beginning with a # (pound sign) are ignored in the configuration file. Do not use blank lines or lines beginning with # (pound sign) within the interface definition . Only use these lines between interface definitions.

Keywords  
interface Indicates that a new interface definition is being started.
ip and ipv6 Specifies the protocol or protocols used for this interface and will coincide with the local_ip, local_ip6, remote_ip, and remote_ip6 keywords. These keywords can be used alone or in combination.
server Indicates that the interface is a server connection.

Requires the following keywords:

local_ip xxx.yyy.zzz.qqq

remote_ip xxx.yyy.zzz.qqq

local_ip6 ::XXXX:XXXX:XXXX:XXXX

remote_ip6 ::XXXX:XXXX:XXXX:XXXX

These addresses MUST be different on the pair basis, however the local IP and IPv6 address can be the same for all PPP interfaces. On a given server, the remote address must be unique. The "interface" "server" entry will contain only local_ip and remote_ip addresses if the smitty PPP IP Interfaces menu is used to configure the interface. remote_ip6 and local_ip6 will be seen in the entry if the smitty PPP IPv6 Interfaces menu is used. Finally, all four will be found if smitty PPP IP and IPv6 Interfaces is used.

client This is an IPv6 option only. A client interface is required for all IPv6 connections. The address will be randomly generated based on the system model and ID. You can elect to zero out the address, (::0:0:0:0 or simply ::) and have the server assign an IPv6 address to the client. An example if_conf file entry follows:
interface
client
ipv6
local_ip6 ::0000:0000:0000:0000

interface
client
ip
ipv6
local_ip6 ::0007:0000:0000:4445
demand There is a local_XXX and remote_XXX that are dependant on the protocol type (IP, IPv6 or both). A quoted command string is also required to establish connection with the authenticating host (server). An example if_conf file entry follows:
interface
demand
ipv6
local_ip6 ::0007:0000:0000:4444
remote_ip6 ::0009:0000:0000:5555
dcmd "exec /usr/sbin/pppattachd /dev/tty3 demand ipv6 >/dev/tty3 nodaemon"

interface
demand
ip
ipv6
local_ip 44.44.44.46
remote_ip 66.66.66.66
netmask 255.255.255.0
local_ip6 ::0007:0000:0000:4446
remote_ip6 ::0009:0000:0000:6666
dcmd "exec /usr/sbin/pppattachd /dev/tty4 demand ip ipv6 >/dev/tty4 nodaemon"
Optional Keywords  
netmask xxx.xxx.xxx.xxx Specifies a netmask for an IPv4 interface.

Exit Status

This command returns the following exit values:

Item Description
0 Successful completion.
!0 An error occurred.

Security

Access Control: You must have root authority to run this command.

Examples

Example /ect/ppp/lcp_config File:
# Comment line
server_name pppclient
lcp_server 0
lcp_client 3
lcp_demand 2
num_if 1
num_if6 2
num_if_and_if6 2
num_hdlc 5
Example /ect/ppp/if_conf File:
# Sample ip server configuration information.
# Note that the complete stanza does not contain
# comments or blank lines
interface
server
ip
local_ip 129.35.130.45
remote_ip 129.35.131.191
netmask 255.255.240.0

# Sample ipv6 server configuration information.
# Note that the complete stanza does not contain
# comments or blank lines
interface
server
ipv6
local_ip6 ::0009:2313:4C00:3193
remote_ip6 ::0009:2313:4C00:3194

#However between stanzas one can have blank or
# comment lines.

interface
server
ip
local_ip 129.35.130.45
remote_ip 129.35.131.196
netmask 255.255.240.0

interface
server
ip
local_ip 129.35.130.45
remote_ip 129.35.131.197
netmask 255.255.240.0

interface
server
ip
local_ip 129.35.130.45
remote_ip 129.35.131.201
netmask 255.255.240.0

interface
server
ip
local_ip 129.35.130.45
remote_ip 129.35.131.212
netmask 255.255.240.0

The above configuration files would result in a subsystem that installs the IP and IPv6 interfaces as follows:

pp0: flags=71<UP,POINTOPOINT,NOTRAILERS>
     inet 129.35.130.45 --> 129.35.131.191 netmask 0xfffff000
pp1: flags=31<UP,POINTOPOINT,NOTRAILERS>
     inet 129.35.130.45 --> 129.35.131.196 netmask 0xfffff000
pp2: flags=31<UP,POINTOPOINT,NOTRAILERS>
     inet 129.35.130.45 --> 129.35.131.197 netmask 0xfffff000
pp3: flags=31<UP,POINTOPOINT,NOTRAILERS>
     inet 129.35.130.45 --> 129.35.131.201 netmask 0xfffff000
pp4: flags=31<UP,POINTOPOINT,NOTRAILERS>
     inet 129.35.130.45 --> 129.35.131.212 netmask 0xfffff000
pp5: flags=30<POINTOPOINT,NOTRAILERS>
     inet netmask

Note: pp5 is the result of the lcp_client keyword in the /etc/ppp/lcp_config file (lcp_client 1). Both IP and IPv6 client interfaces will have no address associated with them until a connection" is established with the server and the IPs are negotiated through IPCP/IPV6CP. The only exception is with demand client interfaces. These interfaces will specify their own address and demand it during negotiation. As such, they will have their IP and IPv6 address associated with their interface as soon as the PPP subsystem is started.

Files

Item Description
/usr/sbin/pppcontrold Contains the pppcontrold daemon.
/etc/ppp/lcp_config Configures the subsystem (lcp_config should be generated by SMIT).
/etc/ppp/if_conf Configures the TCP/IP interfaces (if_conf should be generated by SMIT).
/etc/ppp/pppcontrold.pid Contains the pppcontrold process id.
/etc/ppp/ppp.conf Contains input to the strload command.