3.1.4.8 Application Initiates Listening
When the application requests that the local node begin listening, it MUST specify the following information:
An unsigned integer value specifying the IPv6 Scope to listen on. See [RFC2460].
An unsigned integer value specifying the IPv6 Scope identifier. See [RFC2460].
An unsigned integer value specifying a TCP port to listen on. See [RFC793].
The local node MUST initiate the following actions, starting with the first, and continuing asynchronously:
Begin listening for incoming connections on the addresses corresponding to the specified scope and scope ID.
Record the list of addresses in Listening Addresses.
Bind to the port specified by the application.
Perform Graph Maintenance, as specified in section 3.1.7.16.
Perform Presence Maintenance, as specified in section 3.1.7.17.
Perform Signature Calculation, as specified in section 3.1.7.11.
Initialize the Graph Maintenance Timer as specified in section 3.1.2.
If the local node has one or more neighbor connections in the CONNECTED state, it MUST send a CONNECT message to each with the following information:
The Update bit MUST be set. The Neighbor List bit and Direct bit MUST be clear.
The Source Node ID MUST be the node ID of the local node.
The Address Array MUST contain the list of addresses that the node is listening on.