Chapter 3 - Data Definition Language

Chapter 3 Data Definition Language (DDL)

DDL is a language designed by Juniper Networks that defines virtually every aspect of the UI, including operational queries and setting system configuration.

The DDL source files in the JUNOS source tree are compiled at build time, and this compiled information is used by the JUNOS UI at runtime to build the entire command and configuration schema for that router platform. As the JUNOS UI parses user input, it consults this schema to ensure that the user is entering valid configuration statements and operational commands.

The schema is modular. Since the DDL input files contribute to the different daemons, when a JUNOS package is loaded, the schema is expanded to include the DDL definitions in the corresponding DDL input files, without affecting other existing definitions. This model applies to SDK packages as well.

The DDL input files, *.dd, are structured like C programs; common header files are included with #include statements, and macros are implemented with #define statements. Details for each of these statements are described in the DDL Reference Guide. The purpose of this programmer's guide is to present the overall structure of DDL input files, and how to best implement these files.

The goal of DDL is very simple, it provides the implements to hierachally construct configuration statements (object, attribute) for JUNOS device settings in the configuration mode and network management commands (command, argument) for runtime information retrievals in the operational mode. 'type' is used to describe the fundamental data structure of these new statements and commands. All the other statements ('flag', 'must', etc.) are used to provide constraints to narrow the scope of these statements and commands and to characterize the data precisely.

The steps to create DDL inputs are simple, and they apply to both configuration and operational modes:

  1. define data hierarchy
  2. add help strings
  3. define constraints and characteristics
  4. provide sufficient comments in the input files

DDL Sections

2007-2009 Juniper Networks, Inc. All rights reserved. The information contained herein is confidential information of Juniper Networks, Inc., and may not be used, disclosed, distributed, modified, or copied without the prior written consent of Juniper Networks, Inc. in an express license. This information is subject to change by Juniper Networks, Inc. Juniper Networks, the Juniper Networks logo, and JUNOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners.
Generated on Sun May 30 20:23:10 2010 for JUNOS UI Programmer's Guide by Doxygen 1.4.5