Hi Romain,

It is not your fault, but Gmail's.  Gmail reformats things a little
and it does not always work as a result.  Sigh...

Regards
KK

On 12 December 2010 22:07, Romain Lenglet <romain.leng...@berabera.info> wrote:
> Hi KK,
> I format my patches with git-format-patches, and send them using git
> send-email. Is there any issues with the formatting?
> Regards,
> --
> Romain Lenglet
>
> On 12/13/10 14:57, kk yap wrote:
>>
>> Hi Romain,
>>
>> Thanks for all the patches.  I really appreciate these.  Personally, I
>> tend to work purely in C/C++ in NOX (though I do use Python
>> elsewhere).  So, I have not really followed up with exposing
>> functionalities to the Python side of NOX.  Definitely appreciate all
>> these efforts.
>>
>> A probably unimportant suggestion is to send these patches with
>> git-format-patches, so that you are properly credited in the git log.
>> Might help those using gmail that you zip them up too.  This is
>> probably applicable to those who send patches too.
>>
>> THANKS!
>>
>> Regards
>> KK
>>
>> On 12 December 2010 21:45, Romain Lenglet<romain.leng...@berabera.info>
>>  wrote:
>>>
>>> Hi,
>>> This is an updated and tested version of this patch for the zaku branch.
>>> Do you see any problem with this patch?
>>> BR,
>>> --
>>> Romain Lenglet
>>>
>>> On 12/13/10 14:42, romain.leng...@berabera.info wrote:
>>>>
>>>> From: Romain Lenglet<romain.leng...@berabera.info>
>>>>
>>>> The C++ implementation allowed passing the 64-bit opaque cookie with
>>>> every flow command, but not the Python wrapper.
>>>> ---
>>>>  src/nox/coreapps/pyrt/context.i |    3 ++-
>>>>  src/nox/lib/core.py             |   26 ++++++++++++++++++--------
>>>>  2 files changed, 20 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/src/nox/coreapps/pyrt/context.i
>>>> b/src/nox/coreapps/pyrt/context.i
>>>> index 803513d..6172a75 100644
>>>> --- a/src/nox/coreapps/pyrt/context.i
>>>> +++ b/src/nox/coreapps/pyrt/context.i
>>>> @@ -96,7 +96,8 @@ public:
>>>>      void send_flow_command(uint64_t datapath_id, ofp_flow_mod_command,
>>>>                             const ofp_match&, uint16_t idle_timeout,
>>>>                             uint16_t hard_timeout, const
>>>> Nonowning_buffer&
>>>>  actions,
>>>> -                           uint32_t buffer_id, uint16_t priority);
>>>> +                           uint32_t buffer_id, uint16_t priority,
>>>> +                           uint64_t cookie);
>>>>
>>>>      int close_openflow_connection(uint64_t datapathid);
>>>>
>>>> diff --git a/src/nox/lib/core.py b/src/nox/lib/core.py
>>>> index 37bae36..910e5c7 100644
>>>> --- a/src/nox/lib/core.py
>>>> +++ b/src/nox/lib/core.py
>>>> @@ -249,7 +249,8 @@ class Component:
>>>>      def send_flow_command(self, dp_id, command, attrs,
>>>>                            priority=openflow.OFP_DEFAULT_PRIORITY,
>>>>                            add_args=None,
>>>> -                          hard_timeout=openflow.OFP_FLOW_PERMANENT):
>>>> +                          hard_timeout=openflow.OFP_FLOW_PERMANENT,
>>>> +                          cookie=0):
>>>>          m = set_match(attrs)
>>>>          if m == None:
>>>>              return False
>>>> @@ -265,7 +266,8 @@ class Component:
>>>>              buffer_id = UINT32_MAX
>>>>
>>>>          self.ctxt.send_flow_command(dp_id, command, m, idle_timeout,
>>>> -                                    hard_timeout, oactions, buffer_id,
>>>> priority)
>>>> +                                    hard_timeout, oactions, buffer_id,
>>>> priority,
>>>> +                                    cookie)
>>>>
>>>>          return True
>>>>
>>>> @@ -294,7 +296,7 @@ class Component:
>>>>          else:
>>>>              self.send_openflow_packet(dp_id, packet, actions, inport)
>>>>
>>>> -    def delete_datapath_flow(self, dp_id, attrs):
>>>> +    def delete_datapath_flow(self, dp_id, attrs, cookie=0):
>>>>          """
>>>>          Delete all flow entries matching the passed in (potentially
>>>>          wildcarded) flow
>>>> @@ -302,10 +304,12 @@ class Component:
>>>>          dp_id - datapath to delete the entries from
>>>>          attrs - the flow as a dictionary (described above)
>>>>          """
>>>> -        return self.send_flow_command(dp_id, openflow.OFPFC_DELETE,
>>>> attrs)
>>>> +        return self.send_flow_command(dp_id, openflow.OFPFC_DELETE,
>>>> attrs,
>>>> +                                      cookie=cookie)
>>>>
>>>>      def delete_strict_datapath_flow(self, dp_id, attrs,
>>>> -                        priority=openflow.OFP_DEFAULT_PRIORITY):
>>>> +
>>>>  priority=openflow.OFP_DEFAULT_PRIORITY,
>>>> +                                    cookie=0):
>>>>          """
>>>>          Strictly delete the flow entry matching the passed in
>>>> (potentially
>>>>          wildcarded) flow.  i.e. matched flow have exactly the same
>>>> @@ -315,9 +319,11 @@ class Component:
>>>>          attrs - the flow as a dictionary (described above)
>>>>          priority - the priority of the entry to be deleted (only
>>>> meaningful
>>>>                     for entries with wildcards)
>>>> +        cookie - the opaque controller-issued identifier associated
>>>> with
>>>> the
>>>> +                 flow
>>>>          """
>>>>          return self.send_flow_command(dp_id,
>>>> openflow.OFPFC_DELETE_STRICT,
>>>> -                                      attrs, priority)
>>>> +                                      attrs, priority, cookie=cookie)
>>>>
>>>>
>>>>
>>>>  ###########################################################################
>>>>      # The following methods manipulate a flow entry in a datapath.
>>>> @@ -342,7 +348,7 @@ class Component:
>>>>      def install_datapath_flow(self, dp_id, attrs, idle_timeout,
>>>> hard_timeout,
>>>>                                actions, buffer_id=None,
>>>>                                priority=openflow.OFP_DEFAULT_PRIORITY,
>>>> -                              inport=None, packet=None):
>>>> +                              inport=None, packet=None, cookie=0):
>>>>          """
>>>>          Add a flow entry to datapath
>>>>
>>>> @@ -372,12 +378,16 @@ class Component:
>>>>
>>>>          inport - When packet is sent, the port on which packet came in
>>>> as
>>>> input,
>>>>          so that it can be omitted from any OFPP_FLOOD outputs.
>>>> +
>>>> +        cookie - the opaque controller-issued identifier associated
>>>> with
>>>> the
>>>> +        flow
>>>>          """
>>>>          if buffer_id == None:
>>>>              buffer_id = UINT32_MAX
>>>>
>>>>          self.send_flow_command(dp_id, openflow.OFPFC_ADD, attrs,
>>>> priority,
>>>> -                          (idle_timeout, actions, buffer_id),
>>>> hard_timeout)
>>>> +                               (idle_timeout, actions, buffer_id),
>>>> hard_timeout,
>>>> +                               cookie=cookie)
>>>>
>>>>          if buffer_id == UINT32_MAX and packet != None:
>>>>              for action in actions:
>>>
>>> _______________________________________________
>>> nox-dev mailing list
>>> nox-dev@noxrepo.org
>>> http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org
>>>
>>
>

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

Reply via email to