Configuration
An external configuration file is needed when running IPOP. A sample configuration file is provided with the Controllers source code. Default configuration settings are provided in fxlib.py.
The external configuration file and the settings in fxlib.py are merged. If a key is provided in both files, the key in the external configuration file will take precedence.
Required External Configuration File Keys
Qualified Name | Description |
---|---|
XmppClient.XmppDetails[0].AddressHost | XMPP server domain or IP address |
XmppClient.XmppDetails[0].Port | XMPP port |
XmppClient.XmppDetails[0].TapName | Tap device name used matching one specified in TincanInterface.Vnets |
XmppClient.XmppDetails[0].AuthenticationMethod | Node authentication mode (values: “password” or “x509”) |
XmppClient.XmppDetails[0].Username | XMPP credential user ID (AuthenticationMethod=”password”) |
XmppClient.XmppDetails[0].Password | XMPP credential password (AuthenticationMethod=”password”) |
XmppClient.XmppDetails[0].TrustStore | Truststore path containing XMPP server certificate file (AuthenticationMethod=”x509”) |
XmppClient.XmppDetails[0].CertDirectory | IPOP node certificate directory (AuthenticationMethod=”x509”) |
XmppClient.XmppDetails[0].CertFile | IPOP node public key filename (AuthenticationMethod=”x509”) |
XmppClient.XmppDetails[0].keyfile | IPOP node private key filename (AuthenticationMethod=”x509”) |
XmppClient.XmppDetails[0].AcceptUntrustedServer | Trusted XMPP server |
TincanInterface.Vnets[0].Name | Name of Tap Device |
TincanInterface.Vents[0].IP4 | Virtual ipv4 address given to the node |
TincanInterface.Vnets[0].IP4PrefixLen | Virtual ipv4 address prefix |
TincanInteface.Vnets[0].MTU4 | Maximum Transmission Unit for Virtual net |
TincanInteface.Vnets[0].XMPPModuleName | Name of XMPP Module to use |
TincanInteface.Vnets[0].TapName | Name of Tap Device |
TincanInteface.Vnets[0].Description | |
TincanInteface.Vnets[0].IgnoredNetworkInterfaces | |
TincanInteface.Vnets[0].L2TunnellingEnabled | |
CFx.Model | Type of VPN (“SocialVPN” or “GroupVPN”) |
Optional/Default Keys
Qualified Name | Default Value | Description |
---|---|---|
XmppClient.Enabled | true | Enable XmppClient module(Required by current codebase) |
XmppClient.TimerInterval | 10 | Timer thread interval in seconds |
XmppClient.MessagePerIntervalDelay | 10 | No. of XMPP messages after which the delay has to be increased |
XmppClient.InitialAdvertismentDelay | 5 | Intitial delay for Peer XMPP messages |
XmppClient.XmppAdvrtDelay | 5 | Incremental delay for XMPP messages |
XmppClient.MaxAdvertismentDelay | 30 | Max XMPP Message delay |
XmppClient.dependencies | ["Logger", "TincanInterface", "XmppClient"] |
XMPP module dependencies |
TincanInterface.buf_size | 65507 | Max buffer size for Tincan Messages |
TincanInterface.SocketReadWaitTime | 15 | Socket read wait time for Tincan Messages |
TincanInterface.ctr_recv_port | 5801 | Controller UDP Listening Port |
TincanInterface.ip6_prefix | “fd50:0dbc:41f2:4a3c” | |
TincanInterface.ctrl_send_port | 5800 | Tincan UDP Listening Port |
TincanInterface.localhost | “127.0.0.1” | |
TincanInterface.localhost6 | ”::1” | |
TincanInterface.dependencies | ["Logger"] |
dependencies of TincanInterface module |
TincanInterface.Stun | None | List of usable STUN servers e.g.: ["stun.l.google.com:19302"] |
TincanInterface.Turn | None | List of usable TURN servers with transport address, username, and password in format [{ "Address": "***:19302", "User": "***", "Password": "***"}] |
Logger.LogLevel | “WARNING” | Level of logging verbosity (values: “ERROR”, “INFO”, “DEBUG”, “WARNING”) |
Logger.LogOption | “FILE” | Method of Logging output (values: “FILE”, “CONSOLE”) |
Logger.LogFilePath | ”./logs/” | If LogOption=”FILE”, specify path log files will output |
Logger.CtrlLogFileName | “ctrl.log” | If LogOption=”FILE”, specify file name of Controller log |
Logger.TincanLogFileName | “tincan.log” | If LogOption=”FILE”, specify file name of Tincan log |
Logger.LogFileSize | 1000000 | Log file size specified in bytes |
Logger.ConsoleLevel | None | |
Logger.BackupFileCount | 5 | # of files to hold logging history |
CFx.local_uid | ”” | Attribute to store node UID needed by Statereport and SVPN |
CFx.uid_size | 40 | # of bytes for node UID |
CFx.ipopVerRel | ipopVerRel (Variable in fxlib.py) | Release Version String |
LinkManager.Enabled | true | Enables LinkManager module (Required by current codebase) |
LinkManager.TimerInterval | 10 | Timer thread interval in seconds |
LinkManager.InitialLinkTTL | 120 | Intial Time to Live for a p2p link in seconds |
LinkManager.LinkPulse | 180 | Time to Live for an online p2p link in seconds |
LinkManager.MaxConnRetry | 5 | Max connection retry attempts for each p2p link |
LinkManager.dependencies | ["Logger", "TincanInterface"] |
LinkManager module dependencies |
BroadcastForwarder.Enabled | true | Enables BroadcastForwarder module |
BroadcastForwarder.TimerInterval | 10 | Timer thread interval in seconds |
BroadcastForwarder.dependencies | ["Logger", "TincanInterface", "LinkManager"] |
BroadcastForwarder module dependencies |
ArpCache.Enabled | true | Enables ArpCache module |
ArpCache.dependencies | ["Logger", "TincanInterface", "LinkManager"] |
ArpCache module dependencies |
IPMulticast.Enabled | false | Enables IPMulticast module |
IPMulticast.dependencies | ["Logger", "TincanInterface", "LinkManager"] |
IPMulticast module dependencies |
BaseTopologyManager.Enabled | true | Enables BaseTopologyManager module |
BaseTopologyManager.TimerInterval | 10 | Timer thread interval in seconds |
BaseTopologyManager.dependencies | ["Logger", "TincanInterface", "XmppClient"] |
BaseTopologyManager module dependencies |
OverlayVisualizer.Enabled | false | Enables OverlayVisualizer module |
OverlayVisualizer.TimerInterval | 5 | Timer thread interval in seconds |
OverlayVisualizer.WebServiceAddress | “:8080/insertdata” | Visualizer webservice URL |
OverlayVisualizer.NodeName | ”” | Interval to send data to the visualizer |
OverlayVisualizer.dependencies | ["Logger", "BaseTopologyManager"] |
OverlayVisualizer module dependencies |
StatReport.Enabled | false | Enables StatReport module |
StatReport.TimerInterval | 200 | Timer thread interval in seconds |
StatReport.StatServerAddress | “metrics.ipop-project.org” | Webservice to send stats |
StatReport.StatServerPort | 8080 | Port of StatReport webservice |
StatReport.dependencies | ["Logger"] |
StatReport module dependencies |