# dtFabric format specification.
---
name: cups_ipp
type: format
description: CUPS Internet Printing Protocol (IPP) format
urls: ['https://github.com/libyal/dtformats/blob/main/documentation/CUPS%20Internet%20Printing%20Protocol%20(IPP)%20format.asciidoc']
---
name: char
type: character
attributes:
  size: 1
  units: bytes
---
name: int8
type: integer
attributes:
  format: signed
  size: 1
  units: bytes
---
name: uint8
type: integer
attributes:
  format: unsigned
  size: 1
  units: bytes
---
name: int16
type: integer
attributes:
  format: signed
  size: 2
  units: bytes
---
name: uint16
type: integer
attributes:
  format: unsigned
  size: 2
  units: bytes
---
name: int32
type: integer
attributes:
  format: signed
  size: 4
  units: bytes
---
name: int32be
type: integer
attributes:
  byte_order: big-endian
  format: signed
  size: 4
  units: bytes
---
name: cups_ipp_header
description: Request or response header
type: structure
attributes:
  byte_order: big-endian
members:
- name: major_version
  data_type: int8
- name: minor_version
  data_type: int8
- name: operation_identifier
  aliases: [status_code]
  data_type: int16
- name: request_identifier
  data_type: int32
---
name: cups_ipp_attribute
description: Attribute
type: structure
attributes:
  byte_order: big-endian
members:
- name: tag_value
  data_type: int8
- name: name_size
  data_type: int16
- name: name
  type: string
  encoding: utf8
  element_data_type: char
  elements_data_size: cups_ipp_attribute.name_size
- name: value_data_size
  data_type: int16
- name: value_data
  type: stream
  element_data_type: uint8
  elements_data_size: cups_ipp_attribute.value_data_size
---
name: cups_ipp_datetime_value
description: RFC2579 date-time value
type: structure
attributes:
  byte_order: big-endian
members:
- name: year
  data_type: uint16
- name: month
  data_type: uint8
- name: day_of_month
  data_type: uint8
- name: hours
  data_type: uint8
- name: minutes
  data_type: uint8
- name: seconds
  data_type: uint8
- name: deciseconds
  data_type: uint8
- name: direction_from_utc
  data_type: uint8
- name: hours_from_utc
  data_type: uint8
- name: minutes_from_utc
  data_type: uint8
