public Configuration ParseConfiguration() { Configuration.Builder configurationBuilder = new Configuration.Builder(); LOG.Trace($"Reading configuration from {_filename}"); XElement xelement = XElement.Load(_filename); configurationBuilder.SetCableCloudAddress(xelement.Descendants("cable_cloud_address").First().Value); configurationBuilder.SetCableCloudPort(int.Parse(xelement.Descendants("cable_cloud_port").First().Value)); configurationBuilder.SetClientAlias(xelement.Descendants("client_alias").First().Value); configurationBuilder.SetClientPortAlias(xelement.Descendants("client_port").First().Value); configurationBuilder.SetNccConnectionRequestRemotePort(int.Parse(xelement.Descendants("ncc_connection_request_remote_port").First().Value)); configurationBuilder.SetNccCallTeardownRemotePort(int.Parse(xelement.Descendants("ncc_call_teardown_remote_port").First().Value)); foreach (XElement element in xelement.Descendants("label")) { LOG.Trace($"Remote client node: {element.FirstAttribute.Value}\tLabel: {element.Value}"); configurationBuilder.AddMplsLabel(element.FirstAttribute.Value, long.Parse(element.Value)); } return(configurationBuilder.Build()); }