X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fofproto-sflow.c;h=801614d231852380aaf54351137d65d118f739c0;hb=1e71f10f38d2ad09ee854b7e926a63744a1883e1;hp=784e5528f85472abea96585eeba427c08ff3553f;hpb=27bcf966b4057623f7b4d856c0348a1e0eb452e0;p=openvswitch diff --git a/ofproto/ofproto-sflow.c b/ofproto/ofproto-sflow.c index 784e5528..801614d2 100644 --- a/ofproto/ofproto-sflow.c +++ b/ofproto/ofproto-sflow.c @@ -34,7 +34,7 @@ #include "timeval.h" #include "vlog.h" -VLOG_DEFINE_THIS_MODULE(sflow) +VLOG_DEFINE_THIS_MODULE(sflow); struct ofproto_sflow_port { struct hmap_node hmap_node; /* In struct ofproto_sflow's "ports" hmap. */ @@ -182,10 +182,8 @@ sflow_agent_get_counters(void *os_, SFLPoller *poller, counters->ifDirection = 0; } if (!netdev_get_flags(osp->netdev, &flags) && flags & NETDEV_UP) { - bool carrier; - counters->ifStatus = 1; /* ifAdminStatus up. */ - if (!netdev_get_carrier(osp->netdev, &carrier) && carrier) { + if (netdev_get_carrier(osp->netdev)) { counters->ifStatus |= 2; /* ifOperStatus us. */ } } else { @@ -519,8 +517,7 @@ ofproto_sflow_received(struct ofproto_sflow *os, struct odp_msg *msg) actions = (const union odp_action *) (hdr + 1); /* Get packet payload and extract flow. */ - payload.data = (union odp_action *) (actions + n_actions); - payload.size = msg->length - min_size; + ofpbuf_use_const(&payload, actions + n_actions, msg->length - min_size); flow_extract(&payload, 0, msg->port, &flow); /* Build a flow sample */ @@ -556,8 +553,8 @@ ofproto_sflow_received(struct ofproto_sflow *os, struct odp_msg *msg) /* Add extended switch element. */ memset(&switchElem, 0, sizeof(switchElem)); switchElem.tag = SFLFLOW_EX_SWITCH; - switchElem.flowType.sw.src_vlan = ntohs(flow.dl_vlan); - switchElem.flowType.sw.src_priority = -1; /* XXX */ + switchElem.flowType.sw.src_vlan = vlan_tci_to_vid(flow.vlan_tci); + switchElem.flowType.sw.src_priority = vlan_tci_to_pcp(flow.vlan_tci); /* Initialize the output VLAN and priority to be the same as the input, but these fields can be overriden below if affected by an action. */ switchElem.flowType.sw.dst_vlan = switchElem.flowType.sw.src_vlan;