X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fin-band.c;h=952ff8b152566e4c7ecb631f169f2ef4758bc4c7;hb=a02e5331f6064a7b9dd11f1091ab9fcb1bbdadcc;hp=94d2cb573bf1cb2564d95f376d529ed4bbb9db11;hpb=7aec165dbc4690c8c2c703d142e2f017bb851d31;p=openvswitch diff --git a/ofproto/in-band.c b/ofproto/in-band.c index 94d2cb57..952ff8b1 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -403,7 +403,7 @@ in_band_msg_in_hook(struct in_band *in_band, const struct flow *flow, /* Regardless of how the flow table is configured, we want to be * able to see replies to our DHCP requests. */ if (flow->dl_type == htons(ETH_TYPE_IP) - && flow->nw_proto == IP_TYPE_UDP + && flow->nw_proto == IPPROTO_UDP && flow->tp_src == htons(DHCP_SERVER_PORT) && flow->tp_dst == htons(DHCP_CLIENT_PORT) && packet->l7) { @@ -438,7 +438,7 @@ in_band_rule_check(struct in_band *in_band, const struct flow *flow, /* Don't allow flows that would prevent DHCP replies from being seen * by the local port. */ if (flow->dl_type == htons(ETH_TYPE_IP) - && flow->nw_proto == IP_TYPE_UDP + && flow->nw_proto == IPPROTO_UDP && flow->tp_src == htons(DHCP_SERVER_PORT) && flow->tp_dst == htons(DHCP_CLIENT_PORT)) { const struct nlattr *a; @@ -469,7 +469,7 @@ make_rules(struct in_band *ib, cls_rule_set_in_port(&rule, ODPP_LOCAL); cls_rule_set_dl_type(&rule, htons(ETH_TYPE_IP)); cls_rule_set_dl_src(&rule, ib->installed_local_mac); - cls_rule_set_nw_proto(&rule, IP_TYPE_UDP); + cls_rule_set_nw_proto(&rule, IPPROTO_UDP); cls_rule_set_tp_src(&rule, htons(DHCP_CLIENT_PORT)); cls_rule_set_tp_dst(&rule, htons(DHCP_SERVER_PORT)); cb(ib, &rule); @@ -542,7 +542,7 @@ make_rules(struct in_band *ib, /* (h) Allow TCP traffic to the remote's IP and port. */ cls_rule_init_catchall(&rule, IBR_TO_REMOTE_TCP); cls_rule_set_dl_type(&rule, htons(ETH_TYPE_IP)); - cls_rule_set_nw_proto(&rule, IP_TYPE_TCP); + cls_rule_set_nw_proto(&rule, IPPROTO_TCP); cls_rule_set_nw_dst(&rule, a->sin_addr.s_addr); cls_rule_set_tp_dst(&rule, a->sin_port); cb(ib, &rule); @@ -550,7 +550,7 @@ make_rules(struct in_band *ib, /* (i) Allow TCP traffic from the remote's IP and port. */ cls_rule_init_catchall(&rule, IBR_FROM_REMOTE_TCP); cls_rule_set_dl_type(&rule, htons(ETH_TYPE_IP)); - cls_rule_set_nw_proto(&rule, IP_TYPE_TCP); + cls_rule_set_nw_proto(&rule, IPPROTO_TCP); cls_rule_set_nw_src(&rule, a->sin_addr.s_addr); cls_rule_set_tp_src(&rule, a->sin_port); cb(ib, &rule); @@ -641,7 +641,7 @@ compare_addrs(const void *a_, const void *b_) static int compare_macs(const void *a, const void *b) { - return memcmp(a, b, ETH_ADDR_LEN); + return eth_addr_compare_3way(a, b); } void