X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fin-band.c;h=952ff8b152566e4c7ecb631f169f2ef4758bc4c7;hb=92dbd5c9e3134eabc6e57b397dd18493bc96c9b8;hp=6623aca0b261537a626bac4466311b9d2152cc4a;hpb=cf22f8cba328c0fb47a7e6811563f773fc232904;p=openvswitch diff --git a/ofproto/in-band.c b/ofproto/in-band.c index 6623aca0..952ff8b1 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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,14 +438,14 @@ 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; unsigned int left; NL_ATTR_FOR_EACH_UNSAFE (a, left, actions, actions_len) { - if (nl_attr_type(a) == ODPAT_OUTPUT + if (nl_attr_type(a) == ODP_ACTION_ATTR_OUTPUT && nl_attr_get_u32(a) == ODPP_LOCAL) { return true; } @@ -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