Err, I typed the start and end commit numbers in the wrong order when doing the diff.

Here's it is with + instead of - ;-)

diff --git a/src/nox/apps/pyrt/context.i b/src/nox/apps/pyrt/context.i
index 9b53c4a..8676b8e 100644
--- a/src/nox/apps/pyrt/context.i
+++ b/src/nox/apps/pyrt/context.i
@@ -111,6 +111,8 @@ public:
                       ethernetaddr addr, uint32_t mask, uint32_t config);
    void send_aggregate_stats_request(uint64_t datapath_ids, const
        struct ofp_match& match, uint8_t table_id);
+    int send_switch_config(uint64_t datapath_id, uint16_t flags);
+
private:
    PyContext();

diff --git a/src/nox/apps/pyrt/pycontext.cc b/src/nox/apps/pyrt/pycontext.cc
index a525ae3..3acdcd9 100644
--- a/src/nox/apps/pyrt/pycontext.cc
+++ b/src/nox/apps/pyrt/pycontext.cc
@@ -411,6 +411,31 @@ PyContext::send_port_mod(uint64_t datapath_id, uint16_t port_no, ethernetaddr ad
    return error;
}

+int
+PyContext::send_switch_config(uint64_t datapath_id, uint16_t flags)
+{
+    ofp_switch_config* osc = NULL;
+    size_t msize = sizeof(ofp_switch_config);
+    boost::shared_array<uint8_t> raw_sr(new uint8_t[msize]);
+
+    // Send OFPT_STATS_REQUEST
+    osc = (ofp_switch_config*) raw_sr.get();
+    osc->header.type    = OFPT_SET_CONFIG;
+    osc->header.version = OFP_VERSION;
+    osc->header.length  = htons(msize);
+    osc->header.xid     = 0;
+    osc->flags          = htons(flags);
+    osc->miss_send_len  = htons(OFP_DEFAULT_MISS_SEND_LEN);
+
+ int error = c->send_openflow_command(datapathid::from_host(datapath_id),
+                                         &osc->header, false);
+    if (error == EAGAIN) {
+        vlog().log(vlog().get_module_val("pyrt"), Vlog::LEVEL_ERR,
+                   "unable to send switch_config");
+    }
+
+    return error;
+}

bool
PyContext::unregister_handler(uint32_t rule_id) {
diff --git a/src/nox/apps/pyrt/pycontext.hh b/src/nox/apps/pyrt/pycontext.hh
index 5cc8222..814da6b 100644
--- a/src/nox/apps/pyrt/pycontext.hh
+++ b/src/nox/apps/pyrt/pycontext.hh
@@ -143,6 +143,7 @@ public:
                      ethernetaddr addr, uint32_t mask, uint32_t config);
    void send_aggregate_stats_request(uint64_t datapath_ids, const
        struct ofp_match& match, uint8_t table_id);
+    int send_switch_config(uint64_t datapath_id, uint16_t flags);

    /* C++ context */
    const container::Context* ctxt;



_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to