5.7.3. vlcp.utils.dhcp

Note

This document is generated from the source file.

View Source on GitHub

Created on 2016/6/22

author:hubo

See https://tools.ietf.org/html/rfc2131 https://tools.ietf.org/html/rfc2132

vlcp.utils.dhcp.build_options(payload, options, maxsize=576, overload=3, allowpartial=True)

Split a list of options

This is the reverse operation of reassemble_options, it splits dhcp_option into dhcp_option_partial if necessary, and set overload option if field overloading is used.

Parameters:
  • options – a list of dhcp_option
  • maxsize

    Limit the maximum DHCP message size. If options cannot fit into the DHCP message, specified fields are overloaded for options. If options cannot fit after overloading, extra options are DROPPED if allowpartial = True.

    It is important to sort the dhcp options by priority.

  • overload – fields that are allowed to be overloaded
  • allowpartial – When options cannot fit into the DHCP message, allow the rest options to be dropped.
Returns:

Number of options that are dropped i.e. options[:-return_value] are dropped

vlcp.utils.dhcp.create_dhcp_options(input_dict, ignoreError=False, generateNone=False)

Try best to create dhcp_options from human friendly values, ignoring invalid values

vlcp.utils.dhcp.create_option_from_value(tag, value)

Set DHCP option with human friendly value

vlcp.utils.dhcp.reassemble_options(payload)

Reassemble partial options to options, returns a list of dhcp_option

DHCP options are basically |tag|length|value| structure. When an option is longer than 255 bytes, it can be splitted into multiple structures with the same tag. The splitted structures must be joined back to get the original option.

dhcp_option_partial is used to present the splitted options, and dhcp_option is used for reassembled option.