Add a whole bunch more provider functionality, type to follow.

Also still need to do speed and duplex..