====== CMDB Core ======
The core module of the Configuration Management Data Base in TeemIp is made of the [[https://wiki.openitop.org/doku.php?id=LATEST:datamodel:itop-config-mgmt|Configuration Management Core]] module of iTop that has been altered to integrate TeemIp's specific IP objects. The page below lists all these alterations.
===== Functional CI =====
{{icons8-server.png }}
This is the root class from the CMDB data model where most CIs derive from. As an abstract class, it cannot be instanciated.
TeemIp brings the method **GetNameForIPAttribute** where the shortname of the IP associated to the CI is defined. Because the method is defined in the XML data model file, it can be overloaded to handle specific cases, like the creation of different names for the different IPs that a CI may have.
===== Data Centre Device =====
{{icons8-server.png }}
This is the class, below Functional CI, that groups all CIs that are usually hosted in a data centre, like Network Devices, Servers or Storage Devices.
=== Data Centre Device Properties ===
On this abstract class, only one attribute is affected by TeemIp.
^ Name ^ Type ^ Mandatory? ^
| Management IP | Foreign key to a(n) IPv4 or IPv6 Address | No |
Upon creation or modification, a management IP can be attached as a foreign key to an IP address. A drop-down box will list a choice of available IP addresses.
* According to the **Allow attachment of already allocated IPs to CIs** parameter defined in the [[2_x:datamodel:ip-settings|Global IP Settings]] of the IP's organization:
* Only addresses which status is //**released**// or //**unassigned**// (i.e. not allocated nor reserved) will be offered,
* Or
* Only addresses which status is //**allocated**//, //**released**// or //**unassigned**// (i.e. not reserved) will be offered,
* Status of IP is automatically changed when IP is attached to the data centre device or removed from it,
* If enabled through IP settings, CI name is copied into IP short name.
===== Network Interfaces =====
{{icons8-globe-cable.png }}
This is the root class where all interfaces derive from.
=== Network Interfaces Properties ===
On this abstract class, TeemIp adds an operational status attribute that summarized the status carried by its different daughter classes.
^ Name ^ Type ^ Mandatory? ^
| Operational status| Possible values: Active, Inactive | No |
===== IP Interfaces =====
{{icons8-globe-cable.png }}
This abstract class that derives from Network Interface models the interfaces that carry an IP.
=== IP Interfaces Properties ===
TeemIp is replacing the attributes IP address, IP gateway and IP mask by a n:n relation with IP Addresses. The attribute MAC address is replaced by one that supports multiple MAC address formats.
===== Physical Interfaces =====
{{icons8-globe-wire.png }}
A physical network interface on a physical server, as opposed to a virtual interface that is defined at the software level either in operating systems or virtual machines.
=== Physical Interface Properties ===
^ Name ^ Type ^ Mandatory? ^
| Name | Alphanumeric string | Yes |
| Status | Possible values: Active, Inactive, Obsolete, Stock | Yes |
| Device | Foreign key to a(n) Connectable CI | Yes |
| Comment | Multiline character string | No |
| MAC address | Multi format MAC Address | No |
| Speed | Decimal value (could be negative) | No |
=== Tabs ===
^ Tab ^ Description ^
| VLANs | VLANs that the interface is connected to |
| VRFs | VRFs that the interface is connected to |
| IP Addresses | IP Addresses (v4 or v6) that are hosted on the interface |
There is no limitation in the number of IPv4s and / or IPv6s that a physical interface can host.
{{classdetails_physicalinterface3x.png}}
IPs can be attached to an interface regardless their status, even if it is already allocated. This is to reflect the situation where, for instance, an IP address is set on different router interfaces.
===== Connectable CI and Network Interfaces =====
{{icons8-server.png }}
A Connectable CI is an abstract class of CIs that groups all CIs that can be connected to an IP network. Such CI can host one or multiple physical interfaces.
On this class, TeemIp adds a computed tab that displays all IP addresses (v4 or v6) hosted by all physical interfaces attached to the CI, thus providing an overview on all IPs hosted by the CI.
{{classdetails_connectableci3x.png}}