A method of operating a communications network, the network comprising a plurality of nodes, a plurality of communications links interconnecting the nodes and a plurality of tunnels and a datastore, each of the plurality of tunnels comprising one or more of the plurality of communications links the method comprising the steps of: a) receiving a request to admit a session to the communications network at a requested class of service, the session being routed between a first network node of the plurality of nodes and a second network node of the plurality of nodes, wherein the first network node is connected to the second network node by a plurality of tunnels; and b) if it is not possible to admit the request at the requested class of service, determining, for each of the plurality of tunnels connecting the first network node to the second network node, if a tunnel can support the requested session at a further class of service with a quality of service equal to or greater than that of the requested class of service wherein the determination of whether a tunnel can support the requested session at a further class of service with a quality of service equal to or greater than that of the requested class of service comprises the further steps of: i) storing in the datastore, for each of the plurality of tunnels connecting the first network node to the second network node, a plurality of parameter values for a plurality of network parameters, wherein each of the parameter values is associated with a respective time interval; and on the basis of the data stored in the datastore: ii) determining the expected performance of the tunnel for the duration of the requested session; iii) determining the impact of admitting the requested session to the sessions already supported by the tunnel; and iv) evaluating the historical performance of the tunnel; and admitting or denying the request for a session in accordance with the determinations made in steps ii) to iv). a) receiving a request to admit a session to the communications network at a requested class of service, the session being routed between a first network node of the plurality of nodes and a second network node of the plurality of nodes, wherein the first network node is connected to the second network node by a plurality of tunnels; and b) if it is not possible to admit the request at the requested class of service, determining, for each of the plurality of tunnels connecting the first network node to the second network node, if a tunnel can support the requested session at a further class of service with a quality of service equal to or greater than that of the requested class of service wherein the determination of whether a tunnel can support the requested session at a further class of service with a quality of service equal to or greater than that of the requested class of service comprises the further steps of: i) storing in the datastore, for each of the plurality of tunnels connecting the first network node to the second network node, a plurality of parameter values for a plurality of network parameters, wherein each of the parameter values is associated with a respective time interval; i) storing in the datastore, for each of the plurality of tunnels connecting the first network node to the second network node, a plurality of parameter values for a plurality of network parameters, wherein each of the parameter values is associated with a respective time interval; ii) determining the expected performance of the tunnel for the duration of the requested session; iii) determining the impact of admitting the requested session to the sessions already supported by the tunnel; and iv) evaluating the historical performance of the tunnel; and admitting or denying the request for a session in accordance with the determinations made in steps ii) to iv).