This repository has been archived on 2020-12-30. You can view files and clone it, but cannot push or open issues or pull requests.
NetworkProtocolDictionary/structure-schema.yml

82 lines
2.5 KiB
YAML

type: map
mapping:
"protocol":
type: map
required: yes
mapping:
"name":
type: str
required: yes
"shortname":
type: str
"fields":
type: seq
required: yes
sequence: &fieldsseq
- type: map
mapping:
"field": #field name (best if only one word, for easier referencing)
type: str
required: yes
"desc": #short description
type: str
"length": #length in bytes, except bitfield is set to true!
type: int
"bitfield": #if this is true length is in BITS!
type: bool
"optional":
type: bool
"repeatable":
type: bool
"nextlayer": #identifies this field as nextlayer field (see nextlayer definition below)
type: bool
"data": #data placeholder for next layer
type: bool
"reference": #reference another protocol directly (e.g. ethpacket->ethframe)
type: str
"subfields":
type: seq
sequence: *fieldsseq
"osilayer":
type: int
range: { max: 7, min: 1 }
required: yes
"nextlayer": #identifier list for next layer protocols
type: seq
sequence:
- type: map
mapping:
"protocol":
type: str
required: yes
"identifier":
type: int
required: yes
"extension":
type: bool
"extensions":
type: seq
sequence:
- type: map
mapping:
"extension":
type: map
mapping:
"name":
type: str
required: yes
"referencedfrom": #referencing field of protocol definition
type: str
required: yes
"referenceid": #reference id used in protocol definition or extension itself
type: int
required: yes
"before": # standard is after the normal protocol structure, but could be used for vlan in ethernet for example.
type: str
"after":
type: str
"fields":
type: seq
sequence: *fieldsseq