The pppoe. object represents the PPPoE interface of your device. This is the interface that works over the Ethernet (net.) interface to carry the data between the device and the ADSL modem, the kind that needs user name and login to connect to the Internet. More about PPPoE here: http://en.wikipedia.org/wiki/Pppoe.
It is important to understand that net. and pppoe. represent two different network interfaces of your system, even though they both send and receive data through the same Ethernet wire. For example, PPPoE interface has its own IP address (pppoe.ip), which is different from net.ip.
The pppoe. object itself does not handle the ADSL login, which is quite complex. This task is performed by the PPPOE library. This library's code will perform all necessary login and configuration steps, and then set the only three properties that are needed for pppoe. object's operation:
The IP address of your device on the PPPoE interface (pppoe.ip);
The MAC address of the ADSL modem, a.k.a. "access concentrator" (pppoe.acmac);
Session ID (pppoe.sessionid).
It follows from the above that the PPPoE interface is not automatically ready after the device boot. It has to be properly configured by the PPPoE library.
The pppoe. object only specifies parameters related to the PPPoE interface and is not responsible for sending/transmitting network data. The latter is the job of the sock. object. You will find PPPoE interface listed or available on the following sock. object's properties: