A data processing system comprising: a network interface device comprising a first routing table; a device driver for the network interface device supported at a privileged software domain of the data processing system and comprising a first control plane interface arranged to receive routing table instructions; and a soft switching entity supported at the privileged software domain and configured to route data packets to and from a plurality of unprivileged software domains supported at the data processing system, the soft switching entity having a second routing table and being coupled to a second control plane interface arranged to receive routing table instructions; and a filter configured to trap control packets carrying one or more routing table instructions received at the network interface device and pass those control packets or data contained therein to the first and second control plane interface, wherein: on receiving a routing table update instruction at the first control plane interface, the first control plane interface is configured to cause the device driver to update the first routing table at the network interface device in accordance with the routing table update instruction; and on receiving a routing table update instruction at the second control plane interface, the second control plane interface is configured to cause the second routing table to be updated in accordance with the routing table update instruction, wherein the privileged software domain comprises one of: a hypervisor and a kernel of an operating system, wherein the plurality of unprivileged software domains comprises one of: virtual machines and applications executing at the user level of the operating system. a network interface device comprising a first routing table; a device driver for the network interface device supported at a privileged software domain of the data processing system and comprising a first control plane interface arranged to receive routing table instructions; and a soft switching entity supported at the privileged software domain and configured to route data packets to and from a plurality of unprivileged software domains supported at the data processing system, the soft switching entity having a second routing table and being coupled to a second control plane interface arranged to receive routing table instructions; and a filter configured to trap control packets carrying one or more routing table instructions received at the network interface device and pass those control packets or data contained therein to the first and second control plane interface, wherein: on receiving a routing table update instruction at the first control plane interface, the first control plane interface is configured to cause the device driver to update the first routing table at the network interface device in accordance with the routing table update instruction; and on receiving a routing table update instruction at the second control plane interface, the second control plane interface is configured to cause the second routing table to be updated in accordance with the routing table update instruction, wherein the privileged software domain comprises one of: a hypervisor and a kernel of an operating system, wherein the plurality of unprivileged software domains comprises one of: virtual machines and applications executing at the user level of the operating system. on receiving a routing table update instruction at the first control plane interface, the first control plane interface is configured to cause the device driver to update the first routing table at the network interface device in accordance with the routing table update instruction; and on receiving a routing table update instruction at the second control plane interface, the second control plane interface is configured to cause the second routing table to be updated in accordance with the routing table update instruction, wherein the privileged software domain comprises one of: a hypervisor and a kernel of an operating system, wherein the plurality of unprivileged software domains comprises one of: virtual machines and applications executing at the user level of the operating system.