<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Ratan,<br>
    Thanks for clarifying. <br>
    <br>
    <div class="moz-cite-prefix">On 5/7/20 11:35 PM, Ratan Gupta wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3209c571-c535-8915-314d-353bccf063f6@linux.vnet.ibm.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Jonathan,</p>
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 5/4/20 9:44 PM, Johnathan Mantey
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:cae1cc3d-b4f3-ac09-e023-b469b45cc478@intel.com">
        Ratan,<br>
        <br>
        We're not using Windows. What is the Linux kernel/systemd going
        to do for the Metric? So far the only value that has been
        applied to the Metric is "0" (assigned by ??).</blockquote>
      I was trying to explain your query "What does it mean to "use the
      default metric"?" I am hoping the Idea would be same to understand
      the behavior of default metric value.<br>
      In OpenBmc systemd assigns the default metric value for static
      routes/DHCP routes(if the DHCP server is not providing the metric
      value) <br>
      <br>
      Default Metric means what systemd-networkd assigns if the metric
      is not given by the user(in case of static)/DHCP server. Static
      Routes gets added as default metric value as 0 by
      systemd-networkd.<br>
      <blockquote type="cite"
        cite="mid:cae1cc3d-b4f3-ac09-e023-b469b45cc478@intel.com"> As
        the Microsoft article points out, using a low value Metric for
        "private" nets is to be avoided. <br>
        Our DHCP servers are supplying a Metric value of 1024. I'm sure
        other network managers use different values.<br>
      </blockquote>
      <p>I am hoping that this behavior in your case is coming through
        systemd-netwokd, I also observed this.<br>
        <a class="moz-txt-link-freetext"
href="https://github.com/systemd/systemd/blob/c51c6f2f574e8c107994057c13a6506d93966a23/src/network/networkd-dhcp-common.h#L8"
          moz-do-not-send="true">https://github.com/systemd/systemd/blob/c51c6f2f574e8c107994057c13a6506d93966a23/src/network/networkd-dhcp-common.h#L8</a></p>
      <blockquote type="cite"
        cite="mid:cae1cc3d-b4f3-ac09-e023-b469b45cc478@intel.com"> I
        don't know how to solve this issue. Especially for the IPMI use
        case of assigning a static address. IPMI doesn't have the
        ability to assign metric values. At least with Redfish we can
        have that feature added.<br>
      </blockquote>
      As I mentioned before that we can come up with route management
      feature where user can add/delete/update route(i.e) user can
      change the metric value also for a route.<br>
      <blockquote type="cite"
        cite="mid:cae1cc3d-b4f3-ac09-e023-b469b45cc478@intel.com"> <br>
        <div class="moz-cite-prefix">On 5/4/20 6:38 AM, Ratan Gupta
          wrote:<br>
        </div>
        <blockquote type="cite"
          cite="mid:d523bbb9-59a4-4b15-6527-68f842c0f3ec@linux.vnet.ibm.com">
          <p><br>
          </p>
          <div class="moz-cite-prefix">On 4/29/20 12:19 AM, Johnathan
            Mantey wrote:<br>
          </div>
          <blockquote type="cite"
            cite="mid:35251645-af06-5ab5-9e1b-8e6eaa44f650@intel.com"> I
            think I understand most of your plan.<br>
            <br>
            What does it mean to "use the default metric"?<br>
          </blockquote>
          <p><a class="moz-txt-link-freetext"
href="https://support.microsoft.com/en-in/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes"
              moz-do-not-send="true">https://support.microsoft.com/en-in/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes</a></p>
          <p>Instead of user level application assigns the metric value,
            Let the kernel decide which gateway should be used.</p>
          <p>I understand that there should be a way through which we
            should be able to change the metric value  but that can be
            implemented later with some thing like route management
            where user should be able to add HostRoutes/Network routes
            etc, chnaging the values of the routes etc. <br>
          </p>
          <blockquote type="cite"
            cite="mid:35251645-af06-5ab5-9e1b-8e6eaa44f650@intel.com"> <br>
            <div class="moz-cite-prefix">On 4/28/20 8:16 AM, Ratan Gupta
              wrote:<br>
            </div>
            <blockquote type="cite"
              cite="mid:1f8f6dd4-c62e-7165-c1ba-7466e407d594@linux.vnet.ibm.com">
              <p>Hi Jonathan,</p>
              <div class="moz-cite-prefix">On 4/28/20 1:00 AM, Johnathan
                Mantey wrote:<br>
              </div>
              <blockquote type="cite"
                cite="mid:7c9a2b08-1224-9828-9175-41566532602a@intel.com">
                Ratan,<br>
                <br>
                Can you provide more info about how you plan to
                implement this?<br>
              </blockquote>
              I am not getting, Do you mean to say how to get the per
              interface gateway from system?  that would be through
              netlink, and during configuration we would use the
              systemd-networkd file configuration.<br>
              <blockquote type="cite"
                cite="mid:7c9a2b08-1224-9828-9175-41566532602a@intel.com">
                <br>
                The Redfish schemas already have a per IP addr Gateway
                entry, which OBMC is ignoring. Is it better to modify
                the existing D-Bus schema (i.e. versioning discussion),
                or just use what is presently in existence?<br>
              </blockquote>
              Redfish schema are getting changed to accommodate this
              through the following issue <a
                class="moz-txt-link-freetext"
                href="https://github.com/DMTF/Redfish/issues/3609"
                moz-do-not-send="true">https://github.com/DMTF/Redfish/issues/3609</a>.<br>
              <p>The above issue(gateway/interface) exist only for the
                IPv4 redfish schema, IPv6 redfish is already having
                default gateway per interface <br>
              </p>
              <p><a class="moz-txt-link-freetext"
href="http://redfish.dmtf.org/schemas/v1/EthernetInterface.v1_5_1.json#/definitions/EthernetInterface"
                  moz-do-not-send="true">http://redfish.dmtf.org/schemas/v1/EthernetInterface.v1_5_1.json#/definitions/EthernetInterface</a><br>
              </p>
              <blockquote type="cite"
                cite="mid:7c9a2b08-1224-9828-9175-41566532602a@intel.com">
                <br>
                That said, doing as you propose melds better with how
                IPMI (i.e Set LAN Configuration Parameter 12) works.<br>
                <br>
                As Patrick pointed out, there's no IPMI or Redfish
                control over the routing metric parameter. What are your
                thoughts on how to reconcile applying a metric value?<br>
              </blockquote>
              We will go with default metric value as today as
              underlying stack tries for fallback gateway.
              <blockquote type="cite"
                cite="mid:7c9a2b08-1224-9828-9175-41566532602a@intel.com">
                I've long been desirous of getting Williams submission
                merged: <a class="moz-txt-link-freetext"
href="https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-networkd/+/20799"
                  moz-do-not-send="true">https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-networkd/+/20799</a><br>
                as it can be used to improve the collection of netlink
                stats.<br>
                <br>
                Redfish exacerbates this whole problem by allowing a
                collection of static IP addresses (and a DHCP addr) per
                NIC, unlike IPMI which was very one to one with IP
                addr/NIC. <br>
                <br>
                Thanks for investigating this and working to implement a
                solution.<br>
                <br>
                <div class="moz-cite-prefix">On 4/27/20 4:11 AM, Ratan
                  Gupta wrote:<br>
                </div>
                <blockquote type="cite"
                  cite="mid:32f161d2-784e-8fe5-a00b-e9bec181a265@linux.vnet.ibm.com">
                  <p>Thanks Patrick, William for sharing the feedbacks<br>
                  </p>
                  <p>I will start working on the changes.<br>
                  </p>
                  <p><br>
                  </p>
                  <div class="moz-cite-prefix">On 4/24/20 11:15 PM,
                    William Kennington wrote:<br>
                  </div>
                  <blockquote type="cite"
cite="mid:CAPnigKkaj5aU-3KXKsL_LxAdZg2pccXiQz0bPPb+h8RToBzotg@mail.gmail.com">
                    <div dir="ltr">Sounds good to me, we have needed
                      this for a long time because the current gateway
                      configuration breaks our v6 stack with multiple
                      NICs.<br>
                    </div>
                    <br>
                    <div class="gmail_quote">
                      <div dir="ltr" class="gmail_attr">On Fri, Apr 24,
                        2020 at 8:21 AM Patrick Williams <<a
                          href="mailto:patrick@stwcx.xyz"
                          moz-do-not-send="true">patrick@stwcx.xyz</a>>
                        wrote:<br>
                      </div>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">On Fri, Apr
                        24, 2020 at 08:36:26PM +0530, Ratan Gupta wrote:<br>
                        > ~~~~~~~~~~~~~<br>
                        > Kernel IP routing table<br>
                        > Destination     Gateway        
                        Genmask         Flags   MSS Window  irtt <br>
                        > Iface<br>
                        > 0.0.0.0         19.168.2.1     
                        0.0.0.0         UG        0 0          0 <br>
                        > eth0<br>
                        > 0.0.0.0         10.10.10.1     
                        0.0.0.0         UG        0 0          0 <br>
                        > eth1<br>
                        > ~~~~~~~~~~~~~~<br>
                        > <br>
                        > Kernel will first try using the default
                        gateway having higher metric <br>
                        > value and then fall back to the lower.<br>
                        <br>
                        I'm not seeing us with an interface to adjust
                        the metric for an<br>
                        interface.  I think we need to add that at the
                        same time?</blockquote>
                    </div>
                  </blockquote>
                  <p>Not now, As per my testing if metric value is not
                    defined and both the routes</p>
                  <p>having same metric then kernel tries one after
                    other. We can bring the metric</p>
                  <p>later.<br>
                  </p>
                  <blockquote type="cite"
cite="mid:CAPnigKkaj5aU-3KXKsL_LxAdZg2pccXiQz0bPPb+h8RToBzotg@mail.gmail.com">
                    <div class="gmail_quote">
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">  Otherwise,
                        I<br>
                        don't think we have a way to specify which
                        interface outside-the-subnet<br>
                        should go (vs today we can set the
                        default-gateway to the desired<br>
                        interface's gateway).<br>
                        -- <br>
                        Patrick Williams<br>
                      </blockquote>
                    </div>
                  </blockquote>
                </blockquote>
                <br>
                <div class="moz-signature">-- <br>
                  <title></title>
                  <font color="#1F497D"><font face="Century Gothic">Johnathan
                      Mantey<br>
                      <small>Senior Software Engineer</small><br>
                      <big><font color="#555555"><small><b>azad te</b><b>chnology
                              partners</b></small><br>
                          <small><font color="#1F497D"><small>Contributing
                                to Technology Innovation since 1992</small></font><small><br>
                              <font color="#1F497D">Phone: (503)
                                712-6764<br>
                                Email: <a
                                  href="mailto:johnathanx.mantey@intel.com"
                                  moz-do-not-send="true">johnathanx.mantey@intel.com</a></font></small><br>
                          </small></font></big></font></font></div>
              </blockquote>
              <p><font color="#1F497D"><font face="Century Gothic">Ratan</font></font></p>
            </blockquote>
            <br>
            <div class="moz-signature">-- <br>
              <title></title>
              <font color="#1F497D"><font face="Century Gothic">Johnathan
                  Mantey<br>
                  <small>Senior Software Engineer</small><br>
                  <big><font color="#555555"><small><b>azad te</b><b>chnology
                          partners</b></small><br>
                      <small><font color="#1F497D"><small>Contributing
                            to Technology Innovation since 1992</small></font><small><br>
                          <font color="#1F497D">Phone: (503) 712-6764<br>
                            Email: <a
                              href="mailto:johnathanx.mantey@intel.com"
                              moz-do-not-send="true">johnathanx.mantey@intel.com</a></font></small><br>
                        <br>
                      </small></font></big></font></font> </div>
          </blockquote>
        </blockquote>
        <br>
        <div class="moz-signature">-- <br>
          <title></title>
          <font color="#1F497D"><font face="Century Gothic">Johnathan
              Mantey<br>
              <small>Senior Software Engineer</small><br>
              <big><font color="#555555"><small><b>azad te</b><b>chnology
                      partners</b></small><br>
                  <small><font color="#1F497D"><small>Contributing to
                        Technology Innovation since 1992</small></font><small><br>
                      <font color="#1F497D">Phone: (503) 712-6764<br>
                        Email: <a
                          href="mailto:johnathanx.mantey@intel.com"
                          moz-do-not-send="true">johnathanx.mantey@intel.com</a></font></small><br>
                    <br>
                  </small></font></big></font></font> </div>
      </blockquote>
    </blockquote>
    <br>
    <div class="moz-signature">-- <br>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title></title>
      <font color="#1F497D"><font face="Century Gothic">Johnathan Mantey<br>
          <small>Senior Software Engineer</small><br>
          <big><font color="#555555"><small><b>azad te</b><b>chnology
                  partners</b></small><br>
              <small><font color="#1F497D"><small>Contributing to
                    Technology Innovation since 1992</small></font><small><br>
                  <font color="#1F497D">Phone: (503) 712-6764<br>
                    Email: <a href="mailto:johnathanx.mantey@intel.com">johnathanx.mantey@intel.com</a></font></small><br>
                <br>
              </small></font></big></font></font> </div>
  </body>
</html>