The ML2 plugin introduced the concept of TypeDrivers and Mechanism drivers to separate the types of networks being implemented and the mechanisms for implementing networks of those types.