报进来后,先根据进来的包初始化header:设置进端口、以太网源地址、以太网目的地址、以太网类型,其他的项目全初始化为0。
1、如果以太网类型为0x8100,这个我也不懂,如果不是,转到2;
2、如果以太网类型为0x0806,这是ARP包,设置IP地址,并根据ARP包设置MAC地址,然后就去流表匹配喽,如果不是,转到3;
3、如果以太网类型为0x0800,这是IP包,设置源IP地址、目的IP地址、协议和Tos字段;
4、如果是IP Fragment,那么就直接去流表匹配喽,如果不是IP Fragment,则转到5;
5、如果IP Proto=6或者7,可以给4层使用TCP/UDP源喽,然后去流表匹配,如果不是,转到6;
6、如果IP Proto=1,使用4层的ICMP类型和代码喽,然后去流表匹配,如果不是,转到7;
7、所有可能性都判断完了,只能给你匹配了!