A method, performed by a processing module implemented on one or more processors, of configuring one or more processors to implement a service function chain comprising one or more virtualised service functions (31, 32), the method comprising, in respect of at least one new type of virtualised service function to be inserted between service functions within a pre-existing service function chain: determining a position within the pre-existing service function chain at which the new virtualised service function type is to be inserted; in dependence on the position within the service function chain determined in respect of the new virtualised service function type, allocating to the new virtualised service function type at least one internal address selected from an ordered set of internal addresses assigned to the service function chain, the at least one internal address allocated to the new virtualised service function type being an address selected from one or more addresses in the ordered set that is not currently allocated to a service function (31, 32) in the service function chain and being an address to be usable by a switching processor as a destination address when forwarding data received from one or more other service functions (31, 32) in the service function chain and requiring to be processed by the new virtualised service function type and/or an address to be usable by the switching processor as a source address when forwarding data received from the new virtualised service function type and requiring to be processed by one or more other service functions (31, 32) in the service function chain; and providing to the switching processor an indication of the at least one internal address allocated to the new virtualised service function type, the switching processor being configured to receive data from one service function in the service function chain and to forward data to another service function in the service function chain in dependence on the one or more internal addresses allocated respectively to the one or more service functions in the service function chain. determining a position within the pre-existing service function chain at which the new virtualised service function type is to be inserted; in dependence on the position within the service function chain determined in respect of the new virtualised service function type, allocating to the new virtualised service function type at least one internal address selected from an ordered set of internal addresses assigned to the service function chain, the at least one internal address allocated to the new virtualised service function type being an address selected from one or more addresses in the ordered set that is not currently allocated to a service function (31, 32) in the service function chain and being an address to be usable by a switching processor as a destination address when forwarding data received from one or more other service functions (31, 32) in the service function chain and requiring to be processed by the new virtualised service function type and/or an address to be usable by the switching processor as a source address when forwarding data received from the new virtualised service function type and requiring to be processed by one or more other service functions (31, 32) in the service function chain; and providing to the switching processor an indication of the at least one internal address allocated to the new virtualised service function type, the switching processor being configured to receive data from one service function in the service function chain and to forward data to another service function in the service function chain in dependence on the one or more internal addresses allocated respectively to the one or more service functions in the service function chain.