<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>39708</bug_id>
          
          <creation_ts>2021-02-20 15:26:29 +0300</creation_ts>
          <short_desc>[Open vSwitch] Реализация OVSPatchPort</short_desc>
          <delta_ts>2022-02-11 22:29:12 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>etcnet</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>RS</keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeniy Korneechev">ekorneechev</reporter>
          <assigned_to name="Mikhail Efremov">sem</assigned_to>
          <cc>ldv</cc>
    
    <cc>rider</cc>
    
    <cc>sem</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196380</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2021-02-20 15:26:29 +0300</bug_when>
    <thetext>Если между двумя ovsbr необходимо поднять OVSPatchPort делаем два интерфейса:
# cat patch0/options 
TYPE=ovsport
BRIDGE=vmbr0
OVS_EXTRA=&quot;set port patch0 trunks=2,4,11 -- set interface patch0 type=patch options:peer=patch1&quot;

# cat patch1/options 
TYPE=ovsport
BRIDGE=vmbr1
OVS_EXTRA=&quot;set port patch1 trunks=2,4,11 -- set interface patch1 type=patch options:peer=patch0&quot;

Однако из-за того что в /etc/net/scripts/create-ovsport имеется строка:
iface_exists $NAME || INTERNAL_PORT=&quot;-- set interface $NAME type=internal &quot;

Порт (при отсутствии интерфейс) создается с типом internal естественно:
# journarctl -u network
[...]
фев 20 15:09:04 altpve1.rs ovs-vsctl[28039]: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl -t 10 -- --may-exist add-port vmbr0 patch0 -- set port patch0 trunks=2,4,11 -- set interface patch0 type=patch options:peer=patch1 -- set interface patch0 type=internal

Необходимо ввести в etcnet дополнительную переменную - аля OVS_PATCH=yes или OVS_PORT_TYPE=patch/internal, и чтобы скрипт create-ovsport мог проверить ее</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196631</commentid>
    <comment_count>1</comment_count>
    <who name="Evgeniy Korneechev">ekorneechev</who>
    <bug_when>2021-03-02 10:26:27 +0300</bug_when>
    <thetext>(Ответ для Evgeniy Korneechev на комментарий #0)
&gt; Необходимо ввести в etcnet дополнительную переменную - аля OVS_PATCH=yes

Для данной реализации сделал патч:
# diff create-ovsport~ create-ovsport -u
--- create-ovsport~	2020-11-03 10:42:30.000000000 +0300
+++ create-ovsport	2021-03-02 10:22:14.445808312 +0300
@@ -9,6 +9,8 @@
 }
 
 iface_is_up $BRIDGE || $SCRIPTDIR/ifup $BRIDGE
-iface_exists $NAME || INTERNAL_PORT=&quot;-- set interface $NAME type=internal &quot;
+iface_exists $NAME || PORT_TYPE=&quot;-- set interface $NAME type=internal &quot;
 
-$OVS_VSCTL -t $OVS_VSCTL_TIMEOUT -- --may-exist add-port &quot;$BRIDGE&quot; &quot;$NAME&quot; ${VID+tag=$VID} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} $INTERNAL_PORT &amp;&amp; print_progress
+[ -z $OVS_PATCH ] || PORT_TYPE=&quot;-- set interface $NAME type=patch &quot;
+
+$OVS_VSCTL -t $OVS_VSCTL_TIMEOUT -- --may-exist add-port &quot;$BRIDGE&quot; &quot;$NAME&quot; ${VID+tag=$VID} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA} $PORT_TYPE &amp;&amp; print_progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207694</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2022-02-11 22:29:12 +0300</bug_when>
    <thetext>etcnet-0.9.22-alt1 -&gt; sisyphus:

 Fri Feb 11 2022 Alexey Shabalin &lt;shaba@altlinux&gt; 0.9.22-alt1
 - ovsport: OVS_PATCH option (Closes: #39708).
 - ovsport: HOST must be set.
 - ovsport: BRIDGE must be set.
 - ovsbond: BRIDGE must be set.
 - ovsbond: support VLAN id (Closes: #39707).
 - openvswitch: remove interface before create (Closes: #39709).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>