Create IPMI session interface for host and LAN

IPMI RMCP+ sessions are created & maintained by net-ipmid daemon,
whereas we need to provide details about the same using
phosphor-ipmi-host.Hence IPMI RMCP+ session details has to be
exposed through D-Bus interface,so that both phosphor-ipmi-host
& phosphr-ipmi-net will be in sync.

Tested:Checked in host and LAN interface.
we are able to manage the session in host and also in LAN.

Change-Id: Ibf0878e867de8cd116a22bdfff27d45dbf6104c1
Signed-off-by: Suryakanth Sekar <suryakanth.sekar@linux.intel.com>
diff --git a/xyz/openbmc_project/Ipmi/SESSION_README.md b/xyz/openbmc_project/Ipmi/SESSION_README.md
new file mode 100644
index 0000000..c59b251
--- /dev/null
+++ b/xyz/openbmc_project/Ipmi/SESSION_README.md
@@ -0,0 +1,25 @@
+# Session Management
+
+## Overview
+IPMI RMCP+ sessions are created and maintained by phosphor-ipmi-net daemon,
+whereas we need to provide details about the same using phosphor-ipmi-host.
+Hence IPMI RMCP+ session details has to be exposed through D-Bus interface,
+so that both phosphor-ipmi-host & phosphr-ipmi-net will be in sync.
+
+
+#### xyz.openbmc_project.Ipmi.SessionInfo interface
+##### properties
+* SessionHandle - SessionHandle,unique one-byte number to locate the session.
+* Channel   -  Session created channel.
+* SessionPrivilege - Privilege of the session.
+* RemoteIPAddr  – Remote IP address.
+* RemotePort   - Remote port address.
+* RemoteMACAddress -Remote MAC Address.
+* UserID  - Session created by given user id.
+
+
+
+#### xyz.openbmc_project.Object.Delete
+#### methods
+* Delete - To delete the session object in the system.
+
diff --git a/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml b/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml
new file mode 100644
index 0000000..46cf919
--- /dev/null
+++ b/xyz/openbmc_project/Ipmi/SessionInfo.interface.yaml
@@ -0,0 +1,57 @@
+description: >
+    Provides properties for IPMI RMCP+ session objects.
+    Provides RMCP+ session information as session objects
+    with sessionID_sessionHandle(unique identifier)as path suffix.
+
+properties:
+    - name: SessionHandle
+      type: byte
+      description: >
+          Session Handle,unique number to locate the session.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: ChannelNum
+      type: byte
+      description: >
+          channelnumber which session is created.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: CurrentPrivilege
+      type: byte
+      description: >
+          Privilege of the session.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: RemoteIPAddr
+      type: uint32
+      description: >
+          Remote IP address.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: RemotePort
+      type: uint16
+      description: >
+          Remote IP Port.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: RemoteMACAddress
+      type: array[byte]
+      description: >
+          Remote MAC address.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: UserID
+      type: byte
+      description: >
+           Session created by given user ID.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+    - name: State
+      type: byte
+      default: 0
+      description: >
+          Session state.
+      errors:
+          - xyz.openbmc_project.Common.Error.InternalFailure
+
+# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4