类 dpif_class 抽象的是OVS交换机用户空间和内核层datapath的通信接口(通过netlink),分层是出于性能和生产效率的考虑,通过接口dpif_class,用户层ovs-vswitchd会把发送各种port,流表,查询等动作到内核层进行实际的运行,比方说我们添加一个port到ovs中,那么就会从用户空间构造添加port的
dpif_linux_vport 请求到datapath层。重点要知道的是 dpif_linux_class 就是这个类的一个实例,也是所谓默认的 system dpif实现,这里屡一 dpif_linux_class的创建过程。
我们知道 struct ofproto_class 代表openflow 交换机的接口,每一个openflow交换机实例都须要实现这个接口,这里的实例是 ofproto_dpif_class,它引出一个交换机全部的资源。openflow protocol实例的生命周期四阶段是 alloc ->construct ->destruct
->dealloc。以下是从vswitchd启动到创建dpif的过程图: