1. A method of abstracting datapath hardware elements in a network element, the method comprising the steps of: implementing a table based abstraction layer as an interface to applications running in a control plane of the network element, the table based abstraction layer including a set of tables and an API, the API defining table access operations that allow the applications to insert and extract data from the tables of the table based abstraction layer; and implementing a data path hardware element driver to translate fields of the tables in the table based abstraction layer to tables and registers used by the data path hardware elements in connection with making forwarding decisions for packets of data.