ProL2TP strives to offer mechanism rather than policy, coupled with sensible defaults.
Where some aspect of ProL2TP's behaviour might reasonably be expected to vary in the real world, we have a configuration option to allow operators to change the defaults.
ProL2TP offers "hook scripts" which are automatically run on specified events.
These scripts may be any executable program: this could be a traditional Unix shell script, a Python application, or a compiled C program. They can be used to perform arbitrary actions in order to integrate with other system software.
ProL2TP offers a range of plugin APIs which run in the context of the L2TP daemon and can be used to make fundamental changes to how the daemon works.
The data plane plugin API allows ProL2TP's tunnel and session (pseudowire) code to be replaced or augmented, and allows for e.g. a custom data plane using specialised hardware.
The AVP plugin API allows modification to the L2TP AVP parsing code in order to tweak AVPs or implement protocol extensions.