Message Validation

Introduction

The diameter service supports built-in incoming message validation, enforcing rules on the content of messages that arrive prior to being processed. Each Diameter message type can have its own validation rules, and validation rules can be defined per-endpoint.

For example, the validation of a Capabilities-Exchange request might be defined as:

  "diameter-gateway-validation-capabilities-exchange": {
    "command": 257,
    "common": [
      { "path": "Origin-Host", "required": true },
      { "path": "Origin-Realm", "required": true },
      { "path": "Host-IP-Address", "required": true, "max-count": null },
      { "path": "Vendor-Id", "required": true },
      { "path": "Product-Name", "required": true },
      { "path": "Origin-State-Id" },
      { "path": "Vendor-Specific-Application-Id.Vendor-Id", "required": true },
      { "path": "Vendor-Specific-Application-Id.Auth-Application-Id" },
      { "path": "Vendor-Specific-Application-Id.Acct-Application-Id" },
      { "path": "Firmware-Revision" }
    ],
    "answer": [
      { "path": "Result-Code", "required": true },
      { "path": "Error-Message" },
      { "path": "Failed-AVP", "sub-avp-min-count": 1 }
    ]
  },

Detailed documentation on the semantics of this Diameter message validation is to be published in an upcoming JSLEE release.