<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    Hi All,<br>
    <p style="margin-bottom: 0cm; line-height: 100%"><br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%" align="center"><font
        style="font-size: 14pt" size="4"><b>Enabling
          SLP Server on openBMC</b></font></p>
    <p style="margin-bottom: 0cm; line-height: 100%">What is SLP </p>
    <p style="margin-bottom: 0cm; line-height: 100%">=======</p>
    <p style="margin-bottom: 0cm; line-height: 100%">Service Location
      Protocol (SLP) is a protocol that provides a framework to allow
      networking applications to discover the existence, location, and
      configuration of networked services in enterprise networks.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">openSLP is widely
      accepted in the industry</p>
    <p style="margin-bottom: 0cm; line-height: 100%">What do we need to
      do? </p>
    <p style="margin-bottom: 0cm; line-height: 100%">==============</p>
    <p style="margin-bottom: 0cm; line-height: 100%">1) Bring
      SLP(OpenSLP) in image:- Write the bitbake recipe(didn't find the
      readily available bitbake recipe)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">2) Configure the
      services through Settings daemon.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">3) Write the
      .service file as it needs to start after network is up(after
      networkd-online.target)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">How to configure
      the services which needs to be registered with slpd<br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">============================================</p>
    <p style="margin-bottom: 0cm; line-height: 100%"> Option 1:-
      settingsd </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> Note: Gives the
      flexibility to change the configured services @ runtime. Do we
      require
      this functionality?</p>
    <p style="margin-bottom: 0cm; line-height: 100%"> Option 2:conf
      file for discovery services </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> Note: During
      build time we can get the service info(service-name,port) from the
      existing infra(discoveryservice.bbclass)</p>
    <p style="margin-bottom: 0cm; line-height: 100%">How to register the
      services<br>
      ==================</p>
    <p style="margin-bottom: 0cm; line-height: 100%">1) Static
      Registration:- will not work as we need ip/host-name details which
      we don't have @build time.</p>
    <p style="margin-bottom: 0cm; line-height: 100%">2)
      Application(new DBUS app) will register the configured services
      to the slpd on startup. <br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">We need to provide
      the dynamic registration support on BMC as IP of BMC can change
      any
      time.  Registration of services with slpd takes the URL of the
      service which includes ip and port of the service which
      needs to be registered.</p>
    <p style="margin-bottom: 0cm; line-height: 100%"> </p>
    <p style="margin-bottom: 0cm; line-height: 100%">Create a DBUS
      service application </p>
    <p style="margin-bottom: 0cm; line-height: 100%">=====================<br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%">1) Once the service
      starts it registers the configured services with slpd.<br>
    </p>
    <p style="margin-bottom: 0cm; line-height: 100%"> 2) listening
      on RTNETLINK event for ip change: raise a dbus signal(for the IP
      change)<br>
    </p>
         <br>
         if there is IP change then dereg the old service followed by 
    reg service as the ip has changed.<br>
    <br>
    Regards<br>
    Ratan Gupta<br>
    <title></title>
    <meta name="generator" content="LibreOffice 4.2.8.2 (Linux)">
    <style type="text/css">
        <!--
                @page { margin: 2cm }
                p { margin-bottom: 0.25cm; line-height: 120% }
        -->
        </style>
  </body>
</html>