X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=ofproto%2Fofproto-dpif-sflow.c;h=68eb804d6d4857c9f1d32fa3cc39e917e7132f46;hb=17411ecf2b4d02cfced5f69e567c17673d7d4462;hp=d2da42b0409a910c92169428c00ebf196480399f;hpb=bae473fea5404a5afd205c70689778386045ebab;p=openvswitch diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c index d2da42b0..68eb804d 100644 --- a/ofproto/ofproto-dpif-sflow.c +++ b/ofproto/ofproto-dpif-sflow.c @@ -34,6 +34,7 @@ #include "socket-util.h" #include "timeval.h" #include "vlog.h" +#include "lib/odp-util.h" VLOG_DEFINE_THIS_MODULE(sflow); @@ -41,7 +42,7 @@ struct dpif_sflow_port { struct hmap_node hmap_node; /* In struct dpif_sflow's "ports" hmap. */ struct netdev *netdev; /* Underlying network device, for stats. */ SFLDataSource_instance dsi; /* sFlow library's notion of port number. */ - uint16_t odp_port; /* ODP port number. */ + uint16_t odp_port; /* Datapath port number. */ }; struct dpif_sflow { @@ -235,7 +236,7 @@ sflow_choose_agent_address(const char *agent_device, const char *control_ip, if (agent_device) { struct netdev *netdev; - if (!netdev_open_default(agent_device, &netdev)) { + if (!netdev_open(agent_device, "system", &netdev)) { int error = netdev_get_in4(netdev, &in4, NULL); netdev_close(netdev); if (!error) { @@ -337,7 +338,7 @@ dpif_sflow_add_port(struct dpif_sflow *ds, uint16_t odp_port, dpif_sflow_del_port(ds, odp_port); /* Open network device. */ - error = netdev_open_default(netdev_name, &netdev); + error = netdev_open(netdev_name, "system", &netdev); if (error) { VLOG_WARN_RL(&rl, "failed to open network device \"%s\": %s", netdev_name, strerror(error)); @@ -489,7 +490,8 @@ dpif_sflow_received(struct dpif_sflow *ds, const struct dpif_upcall *upcall, /* Build a flow sample */ memset(&fs, 0, sizeof fs); - fs.input = dpif_sflow_odp_port_to_ifindex(ds, flow->in_port); + fs.input = dpif_sflow_odp_port_to_ifindex(ds, + ofp_port_to_odp_port(flow->in_port)); fs.output = 0; /* Filled in correctly below. */ fs.sample_pool = upcall->sample_pool; @@ -533,12 +535,12 @@ dpif_sflow_received(struct dpif_sflow *ds, const struct dpif_upcall *upcall, ovs_be16 tci; switch (nl_attr_type(a)) { - case ODP_ACTION_ATTR_OUTPUT: + case OVS_ACTION_ATTR_OUTPUT: fs.output = dpif_sflow_odp_port_to_ifindex(ds, nl_attr_get_u32(a)); n_outputs++; break; - case ODP_ACTION_ATTR_SET_DL_TCI: + case OVS_ACTION_ATTR_PUSH_VLAN: tci = nl_attr_get_be16(a); switchElem.flowType.sw.dst_vlan = vlan_tci_to_vid(tci); switchElem.flowType.sw.dst_priority = vlan_tci_to_pcp(tci);