<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi Ben, </p>
<p class="MsoNormal">So by some stroke of genius (luck) I figured out a way to send the extracted packets back to the flow table, where I added in flows that simply check the destination IP and outputs them to the correct port without having to rely on the
 internal routing table using ďnormalĒ.</p>
<p class="MsoNormal">So basically when a switch receives the buffered packets on a switch I extract the single pkts, use them to modify the flow through the flow_extract method and then use the method ofproto_dpif_execute_actions__() to resubmit the single
 extracted packets with the modified flow, to the flow table.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hopefully this makes a little sense, but when Iíll be done with this whole project Iíll make a blog and explain it all more thoroughly.
</p>
<p class="MsoNormal">Thanks for the help!</p>
<p class="MsoNormal"><span style="font-size:12.0pt">Luca <o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:luca.mancini@outlook.com">Luca Mancini</a><br>
<b>Sent: </b>Thursday, June 18, 2020 00:39<br>
<b>To: </b><a href="mailto:ovs-discuss@openvswitch.org">ovs-discuss@openvswitch.org</a><br>
<b>Subject: </b>Re: [ovs-discuss] Storing xlate_ctx CTX</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Me too haha, I wonít lose hope though and I canít really. <o:p>
</o:p></p>
<p class="MsoNormal">Thanks for the suggestions, Iíll keep working on it and update if I manage to come up with something<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From: </b><a href="mailto:blp@ovn.org">Ben Pfaff</a><br>
<b>Sent: </b>Thursday, June 18, 2020 00:29<br>
<b>To: </b><a href="mailto:luca.mancini@outlook.com">Luca Mancini</a><br>
<b>Cc: </b><a href="mailto:ovs-discuss@openvswitch.org">ovs-discuss@openvswitch.org</a><br>
<b>Subject: </b>Re: [ovs-discuss] Storing xlate_ctx CTX<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">I don't know.  I find your use case baffling.<br>
<br>
On Wed, Jun 17, 2020 at 10:15:00PM +0000, Luca Mancini wrote:<br>
> So if I understand this correctly, in this case on another switch where I receive the bufferred packet Iíll have itís actions in ctx set to "normalĒ, but wonít I still have the problem of sending the packets stored inside the buffered packet (once extracted) 
 to ďnormalĒ?<br>
> <br>
> <br>
> From: Ben Pfaff<<a href="mailto:blp@ovn.org">mailto:blp@ovn.org</a>><br>
> Sent: Wednesday, June 17, 2020 23:54<br>
> To: Luca Mancini<<a href="mailto:luca.mancini@outlook.com">mailto:luca.mancini@outlook.com</a>><br>
> Cc: ovs-discuss@openvswitch.org<mailto:ovs-discuss@openvswitch.org><br>
> Subject: Re: [ovs-discuss] Storing xlate_ctx CTX<br>
> <br>
> When you need to send the buffered packet, translate it first with<br>
> xlate_actions(), passing "normal" as the set of actions.<br>
> <br>
> On Wed, Jun 17, 2020 at 09:41:19PM +0000, Luca Mancini wrote:<br>
> > Sorry, what do you mean exactly by ďtranslate the packets using the xlate_ctx structĒ? Do you mean passing "normalĒ to the set of actions before buffering the packet?<br>
> ><br>
> ><br>
> > From: Ben Pfaff<<a href="mailto:blp@ovn.org">mailto:blp@ovn.org</a>><br>
> > Sent: Wednesday, June 17, 2020 23:17<br>
> > To: Luca Mancini<<a href="mailto:luca.mancini@outlook.com">mailto:luca.mancini@outlook.com</a>><br>
> > Cc: ovs-discuss@openvswitch.org<mailto:ovs-discuss@openvswitch.org><br>
> > Subject: Re: [ovs-discuss] Storing xlate_ctx CTX<br>
> ><br>
> > Why not just translate the packets using an xlate_ctx and passing<br>
> > "normal" as the set of actions?<br>
> ><br>
> > On Wed, Jun 17, 2020 at 08:57:07PM +0000, Luca Mancini wrote:<br>
> > > Itís quite the pickle then.<br>
> > > Basically itís a new action Iím trying to implement for OVS , Iíve talked about it before here:
<a href="https://mail.openvswitch.org/pipermail/ovs-discuss/2020-June/050196.html">
https://mail.openvswitch.org/pipermail/ovs-discuss/2020-June/050196.html</a><br>
> > > I need a way to send the single packets to the appropriate ports, I was using ofproto_dpif_send_packet since I can store dp_packet pointers, however it doesnít seem to work on non-physical ports (OFPP_NORMAL etc.) , and the only function I found that
 does is obviously the output function, so Iím attempting to hack my way through it to use it in my favor given that I canít store the original ctx pointer.<br>
> > > The only temporary solution I have in place is iterating through the switchís available ports and flooding the single packets, but this is very ugly let alone inefficient in bigger topologies.<br>
> > ><br>
> > ><br>
> > > From: Ben Pfaff<<a href="mailto:blp@ovn.org">mailto:blp@ovn.org</a>><br>
> > > Sent: Wednesday, June 17, 2020 22:45<br>
> > > To: Luca Mancini<<a href="mailto:luca.mancini@outlook.com">mailto:luca.mancini@outlook.com</a>><br>
> > > Cc: ovs-discuss@openvswitch.org<mailto:ovs-discuss@openvswitch.org><br>
> > > Subject: Re: [ovs-discuss] Storing xlate_ctx CTX<br>
> > ><br>
> > > This is probably not a good solution to your problem.  I don't<br>
> > > understand your overall problem, so I can't suggest a good solution.<br>
> > ><br>
> > > On Wed, Jun 17, 2020 at 08:08:40PM +0000, Luca Mancini wrote:<br>
> > > > I thought so, what about hard coding a ctx struct, i need this particular struct since I'd like to send the single packets received by a switch (after storing them) to the NORMAL logical port, or even just resubmit them to the flow tables so they can
 match another flow, and all the functions that do these things necess struct xlate_ctx.<br>
> > > ><br>
> > > > Thanks!<br>
> > > ><br>
> > > ><br>
> > > > From: Ben Pfaff<<a href="mailto:blp@ovn.org">mailto:blp@ovn.org</a>><br>
> > > > Sent: Wednesday, June 17, 2020 21:50<br>
> > > > To: Luca Mancini<<a href="mailto:luca.mancini@outlook.com">mailto:luca.mancini@outlook.com</a>><br>
> > > > Cc: ovs-discuss@openvswitch.org<mailto:ovs-discuss@openvswitch.org><br>
> > > > Subject: Re: [ovs-discuss] Storing xlate_ctx CTX<br>
> > > ><br>
> > > > On Wed, Jun 17, 2020 at 03:13:27PM +0000, Luca Mancini wrote:<br>
> > > > > Are there ways in OVS store a struct xlate_ctx *ctx so that I can use<br>
> > > > > it even after another packet is received by the switch?<br>
> > > ><br>
> > > > No.<br>
> > > ><br>
> > ><br>
> ><br>
> <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>