CIP TCP/IP Interface Object Explained (Class 0xF5)

By | June 22, 2026

Every EtherNet/IP device has an IP address. Every device has a subnet mask and a gateway. Every device decides whether to get its address from DHCP, BOOTP, or static configuration. Every device that participates in multicast I/O has a multicast address range. All of this lives in one CIP object — the TCP/IP Interface Object, Class 0xF5.

When you use BootP/DHCP Server to assign an IP to a new I/O block, you are writing to its TCP/IP Interface Object. When you configure multicast settings explicitly instead of using the algorithm, you are writing to attribute 9 of the TCP/IP Interface Object. When a device reports “I have valid configuration from DHCP,” that status comes from attribute 1 of the TCP/IP Interface Object.

This article is the complete reference for Class 0xF5 from ODVA’s CIP Networks Library Volume 2, Section 5-3. For broader context, see the CIP Protocol Complete Guide and the CIP Object Model Explained article.

What the TCP/IP Interface Object is in one paragraph

The TCP/IP Interface Object (Class Code 0xF5, decimal 245) is the CIP object that holds a device’s TCP/IP network configuration — IP address, subnet mask, default gateway, DNS servers, domain name, host name, multicast settings, and the device’s startup behavior (DHCP vs BOOTP vs static). Per Volume 2 Section 5-3, every TCP/IP-capable EtherNet/IP device must have exactly one instance of this object for each TCP/IP-capable communications interface. The underlying physical interface (Ethernet, ATM, SLIP, PPP) is identified through an attribute that links to the corresponding Ethernet Link Object (Class 0xF6) or equivalent link-specific object.

Where the TCP/IP Interface Object fits

EtherNet/IP devices have a clean two-object split for network configuration:

ObjectClassLayerWhat it holds
TCP/IP Interface Object0xF5TCP/IP (Layer 3-4)IP, subnet, gateway, DNS, multicast
Ethernet Link Object0xF6Ethernet (Layer 1-2)MAC, link speed, error counters

The TCP/IP Interface Object handles “network layer and above.” The Ethernet Link Object handles “data link layer and below.” Each device has one of each per network interface, and they are linked together by an attribute that points from one to the other. The Physical Link Object attribute (Attribute 4) in the TCP/IP Interface Object identifies which Ethernet Link Object instance it sits on top of.

A device with two Ethernet ports (for daisy-chained DLR topologies, for example) has two Ethernet Link Object instances but typically one TCP/IP Interface Object instance — because both physical ports share one IP address through the device’s internal switch.

The class attributes

Per Volume 2 Table 5-3.1:

Attr IDNeedAccessNameTypePurpose
1OptionalGetRevisionUINTObject revision (described in Vol 1 Ch 4)
2ConditionalGetMax InstanceUINTHighest instance ID currently created
3ConditionalGetNumber of InstancesUINTNumber of instances at this class
4-7OptionalGetVarious optional class attributesSee Vol 1 Ch 4

For most devices the class attributes don’t matter much — they have exactly one instance and engineers go straight to instance 1.

The instance attributes — what engineers actually read and write

Per Volume 2 Table 5-3.2:

Attr IDNeedAccessNameTypePurpose
1RequiredGetStatusDWORDInterface configuration status
2RequiredGetConfiguration CapabilityDWORDWhat configuration methods device supports
3RequiredSetConfiguration ControlDWORDHow device should configure itself
4RequiredGetPhysical Link ObjectSTRUCTPath to underlying Ethernet Link Object
5RequiredSetInterface ConfigurationSTRUCTIP, mask, gateway, DNS, domain
6RequiredSetHost NameSTRINGDevice’s host name
7ConditionalSafety Network Number6 octetsFor CIP Safety devices only
8ConditionalGet/SetTTL ValueUSINTMulticast Time-to-Live
9ConditionalGet/SetMcast ConfigSTRUCTMulticast address allocation

(Later editions of the spec — Edition 1.5 and beyond — added more attributes: Address Conflict Detection (Attribute 10), Quick Connect (Attribute 12), Encapsulation Inactivity Timeout (Attribute 13), and others. Read your device’s documentation or EDS for what it actually implements.)

The first six attributes are required on every TCP/IP-capable device. We’ll walk through each.

Attribute 1 — Status

A DWORD bitmap that shows the current state of the network interface. Per Volume 2 Table 5-3.3:

BitsFieldMeaning
0-3Interface Configuration Status0 = Not configured, 1 = Valid config from BOOTP/DHCP/NVRAM, 2 = Valid config from hardware switches, 3-15 = Reserved
4Mcast Pending1 = TTL or Mcast Config changed but not yet applied (cleared on next startup)
5-31ReservedMust be 0

Reading attribute 1 tells you immediately whether the device has working network configuration:

  • Value 0x00000001 → Interface configured from BOOTP, DHCP, or non-volatile storage
  • Value 0x00000002 → Interface configured from hardware switches (rotary, pushwheel, etc.)
  • Value 0x00000000 → No configuration — the device needs one

A device returning 0 in the low nibble cannot do TCP/IP — it’s waiting for someone to give it an IP address.

Attribute 2 — Configuration Capability

A DWORD bitmap that tells you what configuration methods the device supports. Per Volume 2 Table 5-3.4:

BitNameMeaning
0BOOTP ClientDevice can obtain configuration via BOOTP
1DNS ClientDevice can resolve host names via DNS
2DHCP ClientDevice can obtain configuration via DHCP
3DHCP-DNS UpdateDevice can send host name in DHCP request
4Configuration SettableThe Interface Configuration attribute (Attribute 5) can be set via CIP
5-31ReservedMust be 0

This is a read-only attribute — the device tells you what it can do, you don’t get to change it.

The Configuration Settable bit (bit 4) matters: some devices (especially PCs running EtherNet/IP stacks for monitoring) cannot have their IP set via CIP — bit 4 is 0 for those. Field devices typically have bit 4 set to 1 so configuration tools can write the IP directly.

The spec requires that every conformant device support at least one method of obtaining an initial IP address — so at minimum one of bits 0, 2, or 4 is always set.

Attribute 3 — Configuration Control

A DWORD bitmap you write to tell the device how it should configure itself at startup. Per Volume 2 Table 5-3.5:

BitsFieldMeaning
0-3Startup Configuration0 = Use stored values, 1 = BOOTP at startup, 2 = DHCP at startup, 3-15 = Reserved
4DNS Enable1 = Resolve hostnames via DNS
5-31ReservedMust be 0

This is the attribute you set to decide whether the device uses DHCP, BOOTP, or static configuration.

Value 0x00000000 → “Use stored values” (static IP from non-volatile storage) Value 0x00000001 → “Use BOOTP at startup” Value 0x00000002 → “Use DHCP at startup” Value 0x00000010 → “DNS lookup enabled, static IP” Value 0x00000012 → “DHCP at startup + DNS enabled”

A typical commissioning workflow:

  1. Device ships with bits 0-3 = 1 (BOOTP) or 2 (DHCP) and zero IP address
  2. Engineer uses BootP/DHCP Server to assign an IP
  3. Engineer writes Attribute 3 with value 0 (Use stored values)
  4. Engineer writes Attribute 5 with desired static IP, mask, gateway
  5. Device stores both in NVRAM and uses them on all future power-ups

The spec explicitly warns: never set bits 0-3 to 0 unless Attribute 5 has a valid IP. Doing so could render the device unable to communicate on the network.

A STRUCT containing a Path that points to the underlying link object — typically an Ethernet Link Object (Class 0xF6) instance. Per Volume 2 Section 5-3.2.2.4:

FieldTypePurpose
Path sizeUINTSize of the path in 16-bit words
PathPadded EPATHEPATH to the link object (typically Class 0xF6, Instance N)

For a standard EtherNet/IP device with one Ethernet port, this typically points to Class 0xF6 (Ethernet Link Object), Instance 1. For a device with two ports (DLR-capable), it might point to a specific port instance.

This attribute is what links the two-object pair (TCP/IP Interface + Ethernet Link) together. When a configuration tool wants to read MAC address or port statistics, it follows this path from the TCP/IP Interface Object to the corresponding Ethernet Link Object.

Attribute 5 — Interface Configuration

The big one. A STRUCT containing the complete IP-layer network configuration:

FieldTypePurpose
IP AddressUDINTThe device’s IP address
Network MaskUDINTSubnet mask
Gateway AddressUDINTDefault gateway
Name ServerUDINTPrimary DNS server
Name Server 2UDINTSecondary DNS server
Domain NameSTRINGDefault domain name (up to 48 characters)

When you write Attribute 5, you write all six fields together. Set unused fields to 0 (e.g., Name Server = 0 if you don’t have DNS).

Per the spec:

  • IP Address = 0 means no IP address has been configured
  • IP Address must be a valid Class A, B, or C address — not the loopback (127.0.0.1)
  • Network Mask = 0 means no mask configured
  • Same loopback restriction applies to Gateway and Name Server fields
  • Domain Name length 0 means no domain configured

A typical write to Attribute 5 to set 192.168.1.10 with mask 255.255.255.0 and gateway 192.168.1.1:

IP Address:     0xC0A8010A  (192.168.1.10)
Network Mask:   0xFFFFFF00  (255.255.255.0)
Gateway:        0xC0A80101  (192.168.1.1)
Name Server:    0x00000000  (none)
Name Server 2:  0x00000000  (none)
Domain Length:  0
Domain:         (empty)

These values are transmitted little-endian on the wire per CIP convention.

When does the new configuration take effect?

Per Volume 2 Section 5-3.4: “The TCP/IP Interface Object shall apply the new configuration upon completion of the Set Attribute request.” So the IP change takes effect immediately after the Set succeeds. Be aware: if you change the IP from the same connection that’s writing the change, you will lose communication immediately after the device acknowledges the Set.

The common safe pattern: write the new IP, wait for the acknowledgment, then reconnect to the new IP.

Attribute 6 — Host Name

A STRING (up to 64 characters) containing the device’s host name. Used in DHCP-DNS update (when the device announces itself by name to DNS) and for general identification.

Some devices auto-generate the host name from their serial number or MAC address; others let you set it explicitly. This attribute is settable on most field devices.

Attribute 7 — Safety Network Number

A 6-octet identifier defined by the CIP Safety specification (Volume 5). Only present on EtherNet/IP safety devices. Non-safety devices must not implement this attribute.

The Safety Network Number (SNN) uniquely identifies the safety subnet that this device belongs to and is used by CIP Safety to validate safety connection establishment. For more on safety networking, see our CIP Safety Explained article.

Attribute 8 — TTL Value

A USINT (1 byte) containing the Time-to-Live value used for IP multicast packets sent by this device. Per Volume 2 Section 5-3.2.2.7:

  • Default value: 1 (multicast stays on local subnet)
  • Minimum: 1
  • Maximum: 255

Common values:

TTLScope
1Local subnet only (default)
16Within a site
64Within a region
255Unrestricted

For a plant where I/O traffic must stay on one VLAN, TTL = 1 is correct. For multicast that needs to cross subnet boundaries (with appropriate router configuration), use a higher TTL.

Per the spec, if either Attribute 8 (TTL) or Attribute 9 (Mcast Config) is implemented, both must be implemented. They’re a paired optional capability.

Attribute 9 — Mcast Config

The multicast configuration STRUCT. This is where you override the default algorithmic multicast addressing with explicit values. Per Volume 2 Section 5-3.2.2.8:

FieldTypePurpose
Alloc ControlUSINT0 = use algorithm, 1 = use Mcast Start Addr
ReservedUSINTMust be 0
Num McastUINTNumber of multicast addresses to allocate
Mcast Start AddrUDINTStarting multicast address (Class D)

When Alloc Control = 0 (default), the device uses the algorithmic multicast address generation described in Volume 2 Section 3-5.3 (see our EtherNet/IP I/O Messaging on UDP Port 2222 article).

When Alloc Control = 1, the device uses the explicit Mcast Start Addr + Num Mcast values. So a device configured with Alloc Control = 1, Num Mcast = 32, Mcast Start Addr = 0xEFFF0100 (239.255.1.0) would produce its multicast traffic on addresses 239.255.1.0 through 239.255.1.31.

Explicit multicast configuration is useful in installations where the algorithmic addresses would collide across subnets, or where the network administrator wants explicit control over which multicast addresses are used.

Common services on the TCP/IP Interface Object

The standard services that work:

ServiceCodeCommon usage
Get_Attribute_Single0x0ERead one attribute (e.g., Status, Configuration Capability)
Get_Attributes_All0x01Read all attributes in one transaction
Set_Attribute_Single0x10Set IP configuration, TTL, multicast settings

To assign a static IP to a freshly DHCP-configured device, the typical sequence is:

  1. Read Attribute 1 (Status) to confirm device is configured
  2. Read Attribute 2 (Configuration Capability) to confirm Configuration Settable bit is set
  3. Write Attribute 5 (Interface Configuration) with new IP, mask, gateway, DNS, domain
  4. Write Attribute 3 (Configuration Control) with value 0 to switch to “use stored values”
  5. Read Attribute 1 again to confirm successful configuration

For details on the underlying services, see our CIP Service Codes Complete Reference.

How devices boot — DHCP vs BOOTP vs static

When an EtherNet/IP device powers up, it consults Attribute 3 (Configuration Control) to decide how to get its IP:

Startup Configuration = 0 (Use stored values)

The device uses the IP address, mask, gateway, and DNS values previously stored in non-volatile memory. This is the typical operational mode for production devices — boot up, use the IP that was configured during commissioning, no DHCP needed.

If the device has never been configured (all stored values are 0), it cannot communicate until someone configures it through another method.

Startup Configuration = 1 (BOOTP)

The device sends a BOOTP request at startup with its MAC address. A BOOTP server on the network responds with the assigned IP configuration. Common during initial commissioning — Rockwell’s BootP/DHCP Server tool can serve BOOTP responses to assign IPs to factory-fresh devices.

After BOOTP succeeds, the device has working network configuration. Most engineers then write Attribute 3 = 0 (Use stored values) to switch the device to static mode for production.

Startup Configuration = 2 (DHCP)

The device sends a DHCP request at startup. A DHCP server responds with an IP lease. Common for office/IT-oriented network deployments and some plant networks with DHCP infrastructure.

The downside: DHCP can result in the device getting a different IP each power-up if the server isn’t configured for DHCP reservations. For industrial use, DHCP reservations (also called “static DHCP”) are recommended — the DHCP server always assigns the same IP to the same MAC.

Switching from DHCP/BOOTP to static

The common commissioning pattern:

  1. Power up device → it asks for DHCP/BOOTP
  2. Server assigns initial IP
  3. Engineer uses configuration tool to:
    • Write the desired permanent IP to Attribute 5
    • Write 0 to Attribute 3 (Use stored values)
  4. Future power cycles → device uses the stored IP, no DHCP/BOOTP needed

For more on commissioning with EDS files, see our EDS Files Explained article.

Common TCP/IP Interface Object errors

SymptomLikely causeWhat to check
Set_Attribute_Single returns 0x0E (Attribute not settable)Configuration Settable bit in Attribute 2 is 0Device doesn’t allow CIP-based IP configuration (rare for field devices)
Set_Attribute_Single returns 0x09 (Invalid attribute value)Invalid IP (loopback, multicast, broadcast)Use valid unicast IP in Class A/B/C ranges
Device unreachable after IP changeNew IP and gateway don’t match the networkVerify new IP is reachable from your configuration tool
Multicast traffic on wrong addressesAlgorithm-based addresses collidingConfigure explicit multicast via Attribute 9
Device keeps DHCP-ing after assigning static IPAttribute 3 still set to DHCPWrite Attribute 3 = 0 to switch to stored values
Status (Attribute 1) low nibble = 0Device has no configurationUse BootP/DHCP or hardware switches to provide initial config
TTL change doesn’t take effectMcast Pending bit set in StatusSome devices apply TTL only on next startup

Reading TCP/IP Interface Object in Wireshark

Useful filters:

cip                                       # All CIP traffic
cip.class == 0xF5                         # All TCP/IP Interface Object access
cip.class == 0xF5 && cip.service == 0x0E  # Read attribute requests
cip.class == 0xF5 && cip.service == 0x10  # Set attribute (IP changes)
cip.attribute == 5                        # Specifically the Interface Configuration attribute

When engineers report “the IP keeps changing on me,” capturing CIP traffic and filtering on Class 0xF5 with Set_Attribute_Single quickly reveals which tool or PLC is writing to the device.

For broader Wireshark workflows, see our Wireshark for EtherNet/IP guide.

Frequently asked questions

What is the CIP TCP/IP Interface Object?

The CIP TCP/IP Interface Object (Class Code 0xF5, decimal 245) is the CIP object that holds an EtherNet/IP device’s TCP/IP network configuration — IP address, subnet mask, gateway, DNS settings, host name, and multicast configuration. Every TCP/IP-capable EtherNet/IP device has exactly one instance per network interface. Defined in ODVA’s CIP Networks Library Volume 2, Section 5-3.

What is the class code for the TCP/IP Interface Object?

The class code is 0xF5 (decimal 245). This is one of the network-related object classes specific to EtherNet/IP (defined in Volume 2 rather than Volume 1’s general CIP specification). Every EtherNet/IP device implements at least one instance of Class 0xF5.

How do I change an EtherNet/IP device’s IP address via CIP?

Use Set_Attribute_Single (service 0x10) on Class 0xF5, Instance 1, Attribute 5 (Interface Configuration). The data is a STRUCT containing IP address, network mask, gateway, primary name server, secondary name server, and domain name — all transmitted little-endian. After the Set succeeds, the device applies the new configuration immediately, so you lose communication on the old IP and must reconnect on the new one.

What is the difference between TCP/IP Interface Object and Ethernet Link Object?

The TCP/IP Interface Object (Class 0xF5) handles network-layer configuration — IP address, subnet mask, gateway, DNS, multicast. The Ethernet Link Object (Class 0xF6) handles link-layer information — MAC address, link speed, error counters, interface flags. The two objects are paired: each TCP/IP Interface Object has an attribute (Attribute 4, Physical Link Object) that points to the underlying Ethernet Link Object it sits on top of.

How does a device decide between DHCP, BOOTP, or static IP?

Attribute 3 (Configuration Control) bits 0-3 set the startup behavior: 0 = use stored values (static), 1 = BOOTP at startup, 2 = DHCP at startup. To switch a device from DHCP to static IP, write the desired IP to Attribute 5 (Interface Configuration) and then write 0 to Attribute 3 — the device will use the stored IP on future power-ups instead of asking DHCP.

What is Attribute 1 (Status) of the TCP/IP Interface Object?

A DWORD bitmap that shows the current state of the network interface. The low nibble (bits 0-3) indicates whether the interface has valid configuration: 0 = not configured, 1 = valid config from BOOTP/DHCP/NVRAM, 2 = valid config from hardware switches. Bit 4 (Mcast Pending) indicates that a multicast configuration change has not yet been applied. Reading this attribute is the quickest way to check whether a device has working network configuration.

How do I configure multicast settings on an EtherNet/IP device?

Write Attribute 9 (Mcast Config) — a STRUCT containing Alloc Control (0 = use algorithm, 1 = use explicit address), Num Mcast (number of addresses to allocate), and Mcast Start Addr (starting multicast address). When Alloc Control = 1, the device uses the explicit Mcast Start Addr range instead of the default algorithmic allocation. You may also need to set Attribute 8 (TTL Value) to control how far multicast packets propagate.

What is the default multicast TTL for EtherNet/IP?

The default TTL value (Attribute 8 of the TCP/IP Interface Object) is 1 — meaning multicast packets stay on the local subnet only. Routers won’t forward TTL=1 multicast across subnet boundaries. For multicast that needs to cross subnets, increase the TTL to 16 (within a site), 64 (within a region), or higher, AND configure routers for multicast forwarding.

What does Attribute 2 (Configuration Capability) tell me?

A DWORD bitmap that tells you what configuration methods the device supports. Bit 0 = BOOTP Client, Bit 1 = DNS Client, Bit 2 = DHCP Client, Bit 3 = DHCP-DNS Update, Bit 4 = Configuration Settable (whether Attribute 5 can be written via CIP). This is read-only — it tells you what the device can do, you can’t change it. The spec requires every device to support at least one initial configuration method.

Can I set the IP address of a PC running an EtherNet/IP stack via CIP?

Not always. Some devices (especially PCs and workstations running EtherNet/IP for monitoring purposes) have bit 4 (Configuration Settable) in Attribute 2 set to 0 — meaning their IP cannot be changed via CIP. The host OS controls the network configuration, and CIP can only read it. Field devices typically have bit 4 = 1 so configuration tools can write IP changes directly.

What is the relationship between TCP/IP Interface Object and EDS files?

EDS files don’t specifically describe the TCP/IP Interface Object — its presence and behavior is defined by the EtherNet/IP specification (Volume 2). However, the EDS file’s [Device] section identifies the device, and configuration tools use EDS information to know how to interact with the device. Tools like Studio 5000 use the TCP/IP Interface Object at runtime to read and write the actual IP configuration, while EDS provides the offline device description. For EDS structure, see our EDS Files Explained article.

Where can I find the official TCP/IP Interface Object specification?

The TCP/IP Interface Object is defined in ODVA’s CIP Networks Library Volume 2: EtherNet/IP Adaptation of CIP, Chapter 5 (Object Library), Section 5-3. The current published edition is 1.4 (2007), and later editions have added additional attributes (Address Conflict Detection, Quick Connect, Encapsulation Inactivity Timeout, etc.). ODVA members can access the full specification at odva.org.

Author: Zakaria El Intissar

I've spent 13 years in power system automation, electrical protection, and SCADA communication, as an automation and industrial computing engineer. ScadaProtocols.com is where I turn what I've learned on site into plain guides and working tools — so other engineers can decode, analyze, and troubleshoot industrial communication protocols without the guesswork.