src/main/ruby/org/o3project/odenos/component/driver/of_driver/openflow_controller.rb
#
# Invalidate Flows related to specified OpenFlow port
# @param [Integer] dpid
# @param [Integer] port_no
#
Invalidate Flows related to specified OpenFlow port
Invalidate Flows related to specified OpenFlow port
def invalidate_flow_using_port(dpid, port_no)
            debug ">> #{__method__}"
            flowinfo = get_all_flowinfo_using_port(dpid, port_no)
            affected_flowid_set = {}
            flowinfo.each do| flowinfo |
              flowid = flowinfo[0]
              flowentries = flowinfo[1]
              affected_flowid_set[flowid] = flowid
            end
            affected_flowid_set.each_key do| flowid |
              begin
                flow = getFlow(flowid, _nw_if)
                flow.status = Flow::FAILED
                putFlow(flow, _nw_if)
              rescue RequestError => e
                error "PUT Flow failed: #{e.backtrace}"
              end
            end
          end
def invalidate_flow_using_port ( dpid , port_no ) debug ">> #{__method__}" flowinfo = get_all_flowinfo_using_port ( dpid , port_no ) affected_flowid_set = { } flowinfo . each do | flowinfo | flowid = flowinfo [ 0 ] flowentries = flowinfo [ 1 ] affected_flowid_set [ flowid ] = flowid end affected_flowid_set . each_key do | flowid | begin flow = getFlow ( flowid , _nw_if ) flow . status = Flow :: FAILED putFlow ( flow , _nw_if ) rescue RequestError => e error "PUT Flow failed: #{e.backtrace}" end end end
Invalidate Flows related to specified OpenFlow port
Invalidate Flows related to specified OpenFlow port
# lookup impacted flows # No change flowentry status # should be removed after recalculation triggered by FlowChanged # trigger FlowChanged event to start recalculation # PUT Flow
dpid
<not_specific>
port_no
<not_specific>
<not_specific>
None