@@ -0,0 +1,2668 @@
+%22%22%22Modifications to the flow table from the controller%22%22%22%0A%0A# System imports%0Aimport enum%0A%0A# Third-party imports%0A%0A# Local source tree imports%0Afrom common import action%0Afrom common import flow_match%0Afrom common import header as of_header%0Afrom foundation import base%0Afrom foundation import basic_types%0A%0A%0A# Enums%0A%0Aclass FlowModCommand(enum.Enum):%0A    %22%22%22%0A    List the possible commands for a flow.%0A%0A    Enums:%0A        OFPFC_ADD               # New Flow%0A        OFPFC_MODIFY            # Modify all flows%0A        OFPFC_MODIFY_STRICT     # Modify entry strictly matching wildcards%0A        OFPFC_DELETE            # Delete all matching flows%0A        OFPFC_DELETE_STRICT     # Strictly match wildcards and priority%0A    %22%22%22%0A    OFPFC_ADD = 1%0A    OFPFC_MODIFY = 2%0A    OFPFC_MODIFY_STRICT = 3%0A    OFPFC_DELETE = 4%0A    OFPFC_DELETE_STRICT = 5%0A%0A%0A# Classes%0A%0A%0Aclass FlowMod(base.GenericStruct):%0A    %22%22%22%0A    Modifies the flow table from the controller.%0A%0A        :param header -- OpenFlow header%0A        :param match -- Fields to match%0A        :param cookie -- Opaque controller-issued identifier%0A        :param command -- One of OFPFC_*%0A        :param idle_timeout -- Idle time before discarding (seconds)%0A        :param hard_timeout -- Max time before discarding (seconds)%0A        :param priority -- Priority level of flow entry%0A        :param buffer_idle -- Buffered packet to apply to (or -1).%0A                              Not meaningful for OFPFC_DELETE*%0A        :param out_port -- For OFPFC_DELETE* commands, require matching%0A                           entries to include this as an output port.%0A                           A value of OFPP_NONE indicates no restriction.%0A        :param flags -- One of OFPFF_*%0A        :param actions -- The action length is inferred from the length field%0A                          in the header%0A    %22%22%22%0A    header = of_header.OFPHeader()%0A    match = flow_match.OFPMatch()%0A    cookie = basic_types.UBInt64()%0A    command = basic_types.UBInt16()%0A    idle_timeout = basic_types.UBInt16()%0A    hard_timeout = basic_types.UBInt16()%0A    priority = basic_types.UBInt16()%0A    buffer_id = basic_types.UBInt32()%0A    out_port = basic_types.UBInt16()%0A    flags = basic_types.UBInt16()%0A    actions = action.ActionHeader()%0A%0A    def __init__(self, command=None, idle_timeout=None, hard_timeout=None,%0A                 priority=None, buffer_id=None, out_port=None, flags=None,%0A                 actions=None):%0A%0A        self.command=command%0A        self.idle_timeout=idle_timeout%0A        self.hard_timeout=hard_timeout%0A        self.priority=priority%0A        self.buffer_id=buffer_id%0A        self.out_port=out_port%0A        self.flags=flags%0A        self.actions=actions%0A

Implement flow table modifications classes and enums