<div dir="ltr">Thanks Ben, that is much helpful explanation.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 13, 2017 at 11:42 PM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@ovn.org" target="_blank">blp@ovn.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Oct 13, 2017 at 06:04:16PM +0800, Hui Xiang wrote:<br>
&gt; Is the patch port output logistic within function apply_nested_clone_actions<br>
&gt; ? Sorry, I have not totally understood the whole picture on how a packet<br>
&gt; through<br>
&gt; the datapath flow on the case that goes from netdev datapath patch port_B<br>
&gt; to system datapath port_C. Is it such a procedure:<br>
&gt; When a packet arrives at patch port_B of netdev datapath br1, the xlate ctx<br>
&gt; switch to system datapath br2, and try to find a<br>
&gt; rule, the rule probably missed, but I didn&#39;t find where this rule should be<br>
&gt; preloaded, and why does it not work in this case.<br>
&gt;<br>
&gt; Coud you help to guide?<br>
<br>
</span>Patch port output happens in patch_port_output() in ofproto-dpif-xlate.c.<br>
<br>
Patch ports are implemented entirely within a datapath.  Output to one<br>
happens by simply doing a nested translation of the actions that would<br>
happen at the other end of the patch port.  This can&#39;t really happen if<br>
the packet would pass to another datapath entirely.  One could implement<br>
some feature for hopping from one datapath to another.  We have not done<br>
this because the value of the feature seems limited; most installations<br>
of OVS use only a single datapath.<br>
<span class=""><br>
&gt; In additions, does it work with veth connected netdev datapath with system<br>
&gt; datapath? It seems OVN will bridge the br-int with<br>
&gt; the external network having another bridge with patch port, in this case,<br>
&gt; if br-int is netdev, but external bridge is system,<br>
&gt; then it doesn&#39;t work as what I understand so far.<br>
<br>
</span>veths should be able to hop from one datapath to another, at least for<br>
datapaths that support veths.<br>
</blockquote></div><br></div>