-
Notifications
You must be signed in to change notification settings - Fork 710
VPP DHCPv6
To enable/disable DHCPv6 IA_NA client on an interface:
dhcp6 client <interface> [disable]
To show the state of clients and addresses:
show dhcp6 clients
show dhcp6 addresses
/** \brief Enable/disable DHCPv6 client on interface
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - interface to enable/disable client on
@param enable - 1 to enable, 0 to disable
*/
autoreply define dhcp6_client_enable_disable
{
u32 client_index;
u32 context;
u32 sw_if_index;
u8 enable;
};
Enable DHCPv6 client subsystem to receive UDP messages containing DHCPv6 client port: (This is to set the router to DHCPv6 client mode - so client subsystem gets the messages instead of DHCPv6 proxy subsystem)
/** \brief Enable/disable listening on DHCPv6 client port
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
autoreply define dhcp6_clients_enable_disable
{
u32 client_index;
u32 context;
u8 enable;
};
Send DHCPv6 messages to server:
/** \brief Struct representing DHCPv6 address
@param address - address
@param valid_time - valid lifetime
@param preferred_time - preferred lifetime
*/
typeonly define dhcp6_address_info
{
u8 address[16];
u32 valid_time;
u32 preferred_time;
};
/** \brief Send DHCPv6 client message of specified type
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - index of TX interface, also identifies IAID
@param server_index - used to dentify DHCPv6 server,
unique for each DHCPv6 server on the link,
value obrtained from dhcp6_reply_event API message,
use ~0 to send message to all DHCPv6 servers
@param irt - initial retransmission time
@param mrt - maximum retransmission time
@param mrc - maximum retransmission count
@param mrd - maximum retransmission duration
for sending the message
@param stop - if non-zero then stop resending the message,
otherwise start sending the message
@param msg_type - message type
@param T1 - value of T1 in IA_NA option
@param T2 - value of T2 in IA_NA option
@param n_addresses - number of addresses in IA_NA option
@param addresses - list of addresses in IA_NA option
*/
autoreply define dhcp6_send_client_message
{
u32 client_index;
u32 context;
u32 sw_if_index;
u32 server_index;
u32 irt;
u32 mrt;
u32 mrc;
u32 mrd;
u8 stop;
u8 msg_type;
u32 T1;
u32 T2;
u32 n_addresses;
vl_api_dhcp6_address_info_t addresses[n_addresses];
};
Subscribe for notifications of DHCPv6 messages from server:
/** \brief Register for DHCPv6 reply events
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param enable_disable - 1 => register for events, 0 => cancel registration
@param pid - sender's pid
*/
autoreply define want_dhcp6_reply_events
{
u32 client_index;
u32 context;
u8 enable_disable;
u32 pid;
};
/** \brief Tell client about a DHCPv6 server reply event
@param client_index - opaque cookie to identify the sender
@param pid - client pid registered to receive notification
@param sw_if_index - index of RX interface, also identifies IAID
@param server_index - used to dentify DHCPv6 server,
unique for each DHCPv6 server on the link
@param msg_type - message type
@param T1 - value of T1 in IA_NA option
@param T2 - value of T2 in IA_NA option
@param inner_status_code - value of status code inside IA_NA option
@param status_code - value of status code
@param preference - value of preference option in reply message
@param n_addresses - number of addresses in IA_NA option
@param addresses - list of addresses in IA_NA option
*/
define dhcp6_reply_event
{
u32 client_index;
u32 pid;
u32 sw_if_index;
u32 server_index;
u8 msg_type;
u32 T1;
u32 T2;
u16 inner_status_code;
u16 status_code;
u8 preference;
u32 n_addresses;
vl_api_dhcp6_address_info_t addresses[n_addresses];
};
To enable/disable DHCPv6 prefix delegation client on an interface:
dhcp6 pd client <interface> (prefix group <string> | disable)
To show the state of clients, prefixes and addresses:
show ip6 pd clients
show ip6 prefixes
show ip6 addresses
To add/delete IPv6 address potentially using available prefix from specified prefix group:
set ip6 address <interface> [prefix group <string>] <address> [del]
/** \brief Enable/disable DHCPv6 PD client on interface
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - interface to enable/disable client on
@param prefix_group - name of prefix group (relevant when 'enable' is 1)
@param enable - 1 to enable, 0 to disable
*/
autoreply define dhcp6_pd_client_enable_disable
{
u32 client_index;
u32 context;
u32 sw_if_index;
u8 prefix_group[64];
u8 enable;
};
/** \brief Add/delete IPv6 address optionally using available prefix
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - software interface index of interface
to add/delete address to/from
@param prefix_group - name of prefix group,
prefix_group[0] == '\0' means no prefix should be used
@param address - address or suffix to be used with a prefix
from selected group
@param prefix_length - subnet prefix for the address
@param is_add - 1 for add, 0 for remove
*/
autoreply define ip6_add_del_address_using_prefix
{
u32 client_index;
u32 context;
u32 sw_if_index;
u8 prefix_group[64];
u8 address[16];
u8 prefix_length;
u8 is_add;
};
Enable DHCPv6 client subsystem to receive UDP messages containing DHCPv6 client port: (This is to set the router to DHCPv6 client mode - so client subsystem gets the messages instead of DHCPv6 proxy subsystem)
/** \brief Enable/disable listening on DHCPv6 client port
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
autoreply define dhcp6_clients_enable_disable
{
u32 client_index;
u32 context;
u8 enable;
};
Send DHCPv6 messages to server:
/** \brief Struct representing DHCPv6 PD prefix
@param prefix - prefix
@param prefix_length - prefix length
@param valid_time - valid lifetime
@param preferred_time - preferred lifetime
*/
typeonly define dhcp6_pd_prefix_info
{
u8 prefix[16];
u8 prefix_length;
u32 valid_time;
u32 preferred_time;
};
/** \brief Send DHCPv6 PD client message of specified type
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - index of TX interface
@param server_index - used to dentify DHCPv6 server,
unique for each DHCPv6 server on the link,
value obrtained from dhcp6_pd_reply_event API message,
use ~0 to send message to all DHCPv6 servers
@param irt - initial retransmission time
@param mrt - maximum retransmission time
@param mrc - maximum retransmission count
@param mrd - maximum retransmission duration
for sending the message
@param stop - if non-zero then stop resending the message,
otherwise start sending the message
@param msg_type - message type
@param T1 - value of T1 in IA_PD option
@param T2 - value of T2 in IA_PD option
@param n_prefixes - number of addresses in IA_PD option
@param prefixes - list of prefixes in IA_PD option
*/
autoreply define dhcp6_pd_send_client_message
{
u32 client_index;
u32 context;
u32 sw_if_index;
u32 server_index;
u32 irt;
u32 mrt;
u32 mrc;
u32 mrd;
u8 stop;
u8 msg_type;
u32 T1;
u32 T2;
u32 n_prefixes;
vl_api_dhcp6_pd_prefix_info_t prefixes[n_prefixes];
};
Subscribe for notifications of DHCPv6 messages from server:
/** \brief Register for DHCPv6 PD reply events
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param enable_disable - 1 => register for events, 0 => cancel registration
@param pid - sender's pid
*/
autoreply define want_dhcp6_pd_reply_events
{
u32 client_index;
u32 context;
u8 enable_disable;
u32 pid;
};
/** \brief Tell client about a DHCPv6 PD server reply event
@param client_index - opaque cookie to identify the sender
@param pid - client pid registered to receive notification
@param sw_if_index - index of RX interface
@param server_index - used to dentify DHCPv6 server,
unique for each DHCPv6 server on the link
@param msg_type - message type
@param T1 - value of T1 in IA_PD option
@param T2 - value of T2 in IA_PD option
@param inner_status_code - value of status code inside IA_PD option
@param status_code - value of status code
@param preference - value of preference option in reply message
@param n_prefixes - number of prefixes in IA_PD option
@param prefixes - list of prefixes in IA_PD option
*/
define dhcp6_pd_reply_event
{
u32 client_index;
u32 pid;
u32 sw_if_index;
u32 server_index;
u8 msg_type;
u32 T1;
u32 T2;
u16 inner_status_code;
u16 status_code;
u8 preference;
u32 n_prefixes;
vl_api_dhcp6_pd_prefix_info_t prefixes[n_prefixes];
};
- VPP 2022 Make Test Use Case Poll
- VPP-AArch64
- VPP-ABF
- VPP Alternative Builds
- VPP API Concepts
- VPP API Versioning
- VPP-ApiChangeProcess
- VPP-ArtifactVersioning
- VPP-BIER
- VPP-Bihash
- VPP-BugReports
- VPP Build System Deep Dive
- VPP Build, Install, And Test Images
- VPP-BuildArtifactRetentionPolicy
- VPP-c2cpel
- VPP Code Walkthrough VoD
- VPP Code Walkthrough VoD Topic Index
- VPP Code Walkthrough VoDs
- VPP-CodeStyleConventions
- VPP-CodingTips
- VPP Command Line Arguments
- VPP Command Line Interface CLI Guide
- VPP-CommitMessages
- VPP-Committers-SMEs
- VPP-CommitterTasks-ApiFreeze
- VPP CommitterTasks Compare API Changes
- VPP-CommitterTasks-CutPointRelease
- VPP-CommitterTasks-CutRelease
- VPP-CommitterTasks-FinalReleaseCandidate
- VPP-CommitterTasks-PullThrottleBranch
- VPP-CommitterTasks-ReleasePlan
- VPP Configuration Tool
- VPP Configure An LW46 MAP E Terminator
- VPP Configure VPP As A Router Between Namespaces
- VPP Configure VPP TAP Interfaces For Container Routing
- VPP-CoreFileMismatch
- VPP-cpel
- VPP-cpeldump
- VPP-CurrentData
- VPP-DHCPKit
- VPP-DHCPv6
- VPP-DistributedOwnership
- VPP-Documentation
- VPP DPOs And Feature Arcs
- VPP EC2 Instance With SRIOV
- VPP-elog
- VPP-FAQ
- VPP Feature Arcs
- VPP-Features
- VPP-Features-IPv6
- VPP-FIB
- VPP-g2
- VPP Getting VPP 16.06
- VPP Getting VPP Release Binaries
- VPP-HA
- VPP-HostStack
- VPP-HostStack-BuiltinEchoClientServer
- VPP-HostStack-EchoClientServer
- VPP-HostStack-ExternalEchoClientServer
- VPP HostStack Hs Test
- VPP-HostStack-LDP-iperf
- VPP-HostStack-LDP-nginx
- VPP-HostStack-LDP-sshd
- VPP-HostStack-nginx
- VPP-HostStack-SessionLayerArchitecture
- VPP-HostStack-TestHttpServer
- VPP-HostStack-TestProxy
- VPP-HostStack-TLS
- VPP-HostStack-VCL
- VPP-HostStack-VclEchoClientServer
- VPP-Hotplug
- VPP How To Add A Tunnel Encapsulation
- VPP How To Build The Sample Plugin
- VPP How To Connect A PCI Interface To VPP
- VPP How To Create A VPP Binary Control Plane API
- VPP How To Deploy VPP In EC2 Instance And Use It To Connect Two Different VPCs
- VPP How To Optimize Performance %28System Tuning%29
- VPP How To Use The API Trace Tools
- VPP How To Use The C API
- VPP How To Use The Packet Generator And Packet Tracer
- VPP-Howtos
- VPP-index
- VPP Installing VPP Binaries From Packages
- VPP Interconnecting vRouters With VPP
- VPP Introduction To IP Adjacency
- VPP Introduction To N Tuple Classifiers
- VPP IP Adjacency Introduction
- VPP-IPFIX
- VPP-IPSec
- VPP IPSec And IKEv2
- VPP IPv6 SR VIRL Topology File
- VPP Java API
- VPP Java API Plugin Support
- VPP Jira Workflow
- VPP-Macswapplugin
- VPP-MakeTestFramework
- VPP-Meeting
- VPP-MFIB
- VPP Missing Prefetches
- VPP Modifying The Packet Processing Directed Graph
- VPP MPLS FIB
- VPP-NAT
- VPP Nataas Test
- VPP-OVN
- VPP Per Feature Notes
- VPP Performance Analysis Tools
- VPP-perftop
- VPP Progressive VPP Tutorial
- VPP Project Meeting Minutes
- VPP Pulling, Building, Running, Hacking And Pushing VPP Code
- VPP Pure L3 Between Namespaces With 32s
- VPP Pure L3 Container Networking
- VPP Pushing And Testing A Tag
- VPP Python API
- VPP-PythonVersionPolicy
- VPP-QuickTrexSetup
- VPP Random Hints And Kinks For KVM Usage
- VPP Release Plans Release Plan 16.09
- VPP Release Plans Release Plan 17.01
- VPP Release Plans Release Plan 17.04
- VPP Release Plans Release Plan 17.07
- VPP Release Plans Release Plan 17.10
- VPP Release Plans Release Plan 18.01
- VPP Release Plans Release Plan 18.04
- VPP Release Plans Release Plan 18.07
- VPP Release Plans Release Plan 18.10
- VPP Release Plans Release Plan 19.01
- VPP Release Plans Release Plan 19.04
- VPP Release Plans Release Plan 19.08
- VPP Release Plans Release Plan 20.01
- VPP Release Plans Release Plan 20.05
- VPP Release Plans Release Plan 20.09
- VPP Release Plans Release Plan 21.01
- VPP Release Plans Release Plan 21.06
- VPP Release Plans Release Plan 21.10
- VPP Release Plans Release Plan 22.02
- VPP Release Plans Release Plan 22.06
- VPP Release Plans Release Plan 22.10
- VPP Release Plans Release Plan 23.02
- VPP Release Plans Release Plan 23.06
- VPP Release Plans Release Plan 23.10
- VPP Release Plans Release Plan 24.02
- VPP Release Plans Release Plan 24.06
- VPP Release Plans Release Plan 24.10
- VPP Release Plans Release Plan 25.02
- VPP Release Plans Release Plan 25.06
- VPP Release Plans Release Plan 25.10
- VPP Release Plans Release Plan 26.02
- VPP Release Plans Release Plan 26.06
- VPP-RM
- VPP-SecurityGroups
- VPP Segment Routing For IPv6
- VPP Segment Routing For MPLS
- VPP Setting Up Your Dev Environment
- VPP-SNAT
- VPP Software Architecture
- VPP STN Testing
- VPP The VPP API
- VPP Training Events
- VPP-Troubleshooting
- VPP-Troubleshooting-BuildIssues
- VPP-Troubleshooting-Vagrant
- VPP Tutorial DPDK And MacSwap
- VPP Tutorial Routing And Switching
- VPP-Tutorials
- VPP Use VPP To Chain VMs Using Vhost User Interface
- VPP Use VPP To Connect VMs Using Vhost User Interface
- VPP Using mTCP User Mode TCP Stack With VPP
- VPP Using VPP As A VXLAN Tunnel Terminator
- VPP Using VPP In A Multi Thread Model
- VPP-VOM
- VPP VPP BFD Nexus
- VPP VPP Home Gateway
- VPP VPP WIKI DEPRECATED CONTENT
- VPP-VPPCommunicationsLibrary
- VPP-VPPConfig
- VPP What Is ODP4VPP
- VPP What Is VPP
- VPP Working Environments
- VPP Working With The 16.06 Throttle Branch