-
Notifications
You must be signed in to change notification settings - Fork 17
MACsec/ MKA config and metric support in OTG model #408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
4b20750
8af52f3
3ec23a2
3fd7c48
969df60
1ca1b30
4ecb166
d71380b
6020161
e19f254
ed9acb0
327764c
000d3f6
a413c7f
9a39c19
67ea4ea
36ee718
da773a7
c30ed27
88176bc
53db31b
fef8e24
7b63176
e8108da
dca3c14
c0365c2
fc190d3
0890e5d
e9d7ec0
6733259
0024884
67c50dc
e30bdb7
2e21f36
c682612
a5a2479
a204124
48618c7
7cb2bd8
b6a4544
e1ee4fc
c02214a
a100888
9038f0b
4a1cec9
6901507
9691c0d
77184da
06e35f2
26c52eb
1c28032
f77b401
2b8e2a0
f943b27
e3965fa
bffc9f5
b368302
c9ee3df
13b199c
cd1fec1
06e6b08
f66d227
7e5167a
2f48722
6b6f35c
e2cf5a9
aa80c6f
bc44f82
d9c6248
da33063
0b57649
64f32d5
b28f43b
39d324f
a69e292
9fedae5
db520d7
f5db90e
a8bee5b
8023020
59851eb
33e5de8
b2e8778
fc08673
d33b458
69056f1
a0a1b4f
7f82ad2
0f27500
780b3d7
1b41dc4
02ee19e
c0ba31d
f1c2e80
25415fe
2955f9f
5d65901
e0166c7
8e71436
5d8bfcf
2a12cfd
b5ac0e0
04f0cfb
e6e5f2a
03425e2
8ee499f
5baf6cc
cf26444
2aa3a31
69cc3ce
b284c0e
48d4214
97e9f36
65f7aaa
c3d0e5b
a69b928
96d55d5
3a106d4
03321c2
5a14561
126ddd8
efe91cd
f2467b4
c0a25e1
7223c61
cdb1903
2c0a98d
841689b
3f62b11
c7e7002
9b510eb
3c8f3c5
419101f
dc462a8
6fe78aa
90ab155
c7f349c
2f0706f
61c2c21
fd682c4
f1f8ac0
12d37c6
ddff1fb
93cb804
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
components: | ||
schemas: | ||
Macsec.CryptoEngine: | ||
description: >- | ||
A container of crypto engine properties of a SecY. | ||
type: object | ||
properties: | ||
choice: | ||
description: >- | ||
Engine type based on encryption and/ or decryption capability. Supported types: 1) stateless_encryption_only - engine can only encrypt transmitted packets but such engine cannot decrypt packets upon arrival. As the packets cannot be decrypted on arrival, such packets cannot be delivered to the receiving device. Hence only stateless traffic can be sent. 2) stateful_encryption_decryption - engine can both encrypt transmitted packets and decrypt packets on arrival. Such engine can have hardware acceleration for faster encryption/ ddecryption. As both encryption and decryption are possible, stateful (e.g. TCP) traffic can be sent/ received. | ||
type: string | ||
default: stateless_encryption_only | ||
x-field-uid: 1 | ||
x-enum: | ||
stateless_encryption_only: | ||
sasubrata marked this conversation as resolved.
Show resolved
Hide resolved
|
||
x-field-uid: 1 | ||
stateful_encryption_decryption: | ||
x-field-uid: 2 | ||
stateless_encryption_only: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatelessEncryptionOnly' | ||
x-field-uid: 2 | ||
stateful_encryption_decryption: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatefulEncryptionDecryption' | ||
x-field-uid: 3 | ||
Macsec.CryptoEngine.StatelessEncryptionOnly: | ||
description: >- | ||
The container for stateless encryption only engine configuration. | ||
type: object | ||
properties: | ||
tx_pn: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatelessEncryptionOnly.TxPn' | ||
x-field-uid: 1 | ||
traffic: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatelessEncryptionOnly.Traffic' | ||
x-field-uid: 3 | ||
Macsec.CryptoEngine.StatefulEncryptionDecryption: | ||
description: >- | ||
The container for stateful encryption and decryption engine configuration. | ||
type: object | ||
properties: | ||
initial_pn: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatefulEncryptionDecryption.InitialPn' | ||
x-field-uid: 1 | ||
hardware_acceleration: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatefulEncryptionDecryption.HardwareAcceleration' | ||
x-field-uid: 2 | ||
Macsec.CryptoEngine.StatelessEncryptionOnly.TxPn: | ||
description: >- | ||
Tx packet number(PN) configuration. | ||
type: object | ||
properties: | ||
choice: | ||
description: >- | ||
Types of Tx packet number(PN) series. Supported choices: 1) fixed PN - MACsec packets will be sent out with the configured fixed PN or lower half of configured fixed XPN. 2) incrementing PN - MACsec packets will be sent out by single device with an incrementing PN or XPN. | ||
type: string | ||
default: fixed_pn | ||
x-field-uid: 1 | ||
x-enum: | ||
fixed_pn: | ||
x-field-uid: 1 | ||
incrementing_pn: | ||
x-field-uid: 2 | ||
fixed: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatelessEncryptionOnly.FixedPn' | ||
x-field-uid: 2 | ||
incrementing: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatelessEncryptionOnly.IncrementingPn' | ||
x-field-uid: 3 | ||
Macsec.CryptoEngine.StatelessEncryptionOnly.FixedPn: | ||
description: >- | ||
Fixed packet number(PN) configuration. | ||
type: object | ||
properties: | ||
pn: | ||
description: >- | ||
Fixed Tx packet number(PN). 4 bytes PN with which all packets will be sent out. | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
maximum: 4294967295 | ||
default: 6 | ||
x-field-uid: 1 | ||
xpn: | ||
description: >- | ||
Fixed Tx extended packet number(XPN). 8 bytes XPN with which all packets will be sent out. | ||
type: string | ||
format: hex | ||
minLength: 1 | ||
maxLength: 8 | ||
minimum: 1 | ||
default: "0x0000000000000006" | ||
x-field-uid: 2 | ||
Macsec.CryptoEngine.StatelessEncryptionOnly.IncrementingPn: | ||
description: >- | ||
Incrementing packet number(PN) configuration. | ||
type: object | ||
properties: | ||
count: | ||
description: >- | ||
Count of packet numbers in series. | ||
type: integer | ||
format: uint32 | ||
minimum: 2 | ||
maximum: 1000000 | ||
default: 100 | ||
x-field-uid: 1 | ||
first_pn: | ||
description: >- | ||
The first packet number(PN). | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
default: 10000 | ||
x-field-uid: 2 | ||
first_xpn: | ||
description: >- | ||
The first extended packet number(XPN). | ||
type: string | ||
format: hex | ||
minLength: 1 | ||
maxLength: 8 | ||
minimum: 1 | ||
default: "0x0000000000010000" | ||
x-field-uid: 3 | ||
Macsec.CryptoEngine.StatelessEncryptionOnly.Traffic: | ||
description: >- | ||
Encryption only traffic configuration. | ||
type: object | ||
properties: | ||
send_gratarp: | ||
description: >- | ||
Send gratuitous ARP or not. | ||
type: boolean | ||
default: true | ||
x-field-uid: 1 | ||
Macsec.CryptoEngine.StatefulEncryptionDecryption.InitialPn: | ||
description: >- | ||
Initial packet number(PN) configuration. | ||
type: object | ||
properties: | ||
pn: | ||
description: >- | ||
Initial Tx packet number(PN). | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
default: 1 | ||
x-field-uid: 1 | ||
Macsec.CryptoEngine.StatefulEncryptionDecryption.HardwareAcceleration: | ||
description: >- | ||
Hardware acceleration configuration for offloading MACsec processing to hardware. | ||
type: object | ||
properties: | ||
choice: | ||
sasubrata marked this conversation as resolved.
Show resolved
Hide resolved
|
||
description: >- | ||
Hardware acceleration types. | ||
type: string | ||
default: none | ||
x-field-uid: 1 | ||
x-enum: | ||
none: | ||
x-field-uid: 1 | ||
inline_crypto: | ||
x-field-uid: 2 | ||
inline_crypto: | ||
$ref: '#/components/schemas/Macsec.CryptoEngine.StatefulEncryptionDecryption.HardwareAcceleration.InlineCrypto' | ||
x-field-uid: 2 | ||
Macsec.CryptoEngine.StatefulEncryptionDecryption.HardwareAcceleration.InlineCrypto: | ||
description: >- | ||
Inline cryto engine configuration. Encryption/ decryption are offloaded to hardware. Also dynamic fields e.g. packet number(PN) and integrity check value(ICV) are updated in MACsec header on transmit. | ||
type: object | ||
properties: | ||
rx_sectag_offset: | ||
description: >- | ||
Offset of Rx secTAG from the first byte in packet. | ||
type: integer | ||
format: uint32 | ||
default: 12 | ||
sasubrata marked this conversation as resolved.
Show resolved
Hide resolved
|
||
x-field-uid: 1 | ||
type_of_ca: | ||
description: >- | ||
Type of connectivity association(CA). | ||
type: string | ||
x-field-uid: 2 | ||
x-enum: | ||
pairwise_ca: | ||
x-field-uid: 1 | ||
group_ca_single_dut: | ||
x-field-uid: 2 | ||
group_ca_multipe_duts: | ||
x-field-uid: 3 | ||
max_ca_count: | ||
description: >- | ||
The maximum number of CAs configured on the port. The maximum count supported per port is 256 for Pair-wise CA, each CA having one MACsec device. | ||
type: integer | ||
format: uint32 | ||
sasubrata marked this conversation as resolved.
Show resolved
Hide resolved
|
||
minimum: 1 | ||
maximum: 256 | ||
default: 256 | ||
x-field-uid: 3 | ||
max_dut_tx_sc_per_ca: | ||
description: >- | ||
The maximum number of DUT transmit SCs that can be supported per CA. The count should be number of Tx SCs supported by the DUT per CA, multiplied by number of DUTs in the CA in case of group CA with multiple DUTs scenario. | ||
type: integer | ||
format: uint32 | ||
sasubrata marked this conversation as resolved.
Show resolved
Hide resolved
|
||
minimum: 1 | ||
maximum: 256 | ||
default: 1 | ||
x-field-uid: 4 | ||
max_device_per_ca: | ||
description: >- | ||
The maximum number of MACsec devices at test port that can be supported on each CA. This number is calculated automatically based on the values configured for Max CA Count and Max DUT Tx SC Per CA. Number of MACsec devices at test port should be configured accordingly. | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
default: 256 | ||
x-field-uid: 5 | ||
rx_sc_identifying_field: | ||
description: >- | ||
The field based on which secure channel(SC) will be identified by the receiving port. Supported fields are:- - 1) source MAC - identify SC based on source MAC field. 2) SCI system ID - identify SC bbased on SCI system ID field. 3) SCI port ID - identify based on SCI port ID field. | ||
type: string | ||
default: source_mac | ||
x-field-uid: 6 | ||
x-enum: | ||
source_mac: | ||
x-field-uid: 1 | ||
sci_sytem_id: | ||
x-field-uid: 2 | ||
sci_port_id: | ||
x-field-uid: 3 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
components: | ||
schemas: | ||
Device.Macsec: | ||
description: >- | ||
A container of properties for a MACsec capable device. | ||
type: object | ||
required: [ethernet_interfaces] | ||
properties: | ||
ethernet_interfaces: | ||
description: |- | ||
Ethernet Interfaces | ||
type: array | ||
items: | ||
$ref: '#/components/schemas/Device.Macsec.EthernetInterface' | ||
x-field-uid: 1 | ||
Device.Macsec.EthernetInterface: | ||
description: >- | ||
Configuration for single MACsec interface. | ||
type: object | ||
required: [eth_name, secy] | ||
properties: | ||
eth_name: | ||
description: >- | ||
The unique name of the Ethernet interface on which MACsec | ||
is enabled. | ||
type: string | ||
x-constraint: | ||
- '/components/schemas/Device.Ethernet/properties/name' | ||
x-field-uid: 1 | ||
secy: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could we possible have a choice maybe at this level or for both tx/rx within secy to choose either static or mka , and depending on that take in the static or mka config ? At device level , we have single macsec protocol node and within that per interface ( or per interface tx and rx ) we have a choice of static or mka . There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Currently configuration is arranged this way:
Currently configurations common to static key and MKA are not duplicated. These are set once only. If we have static key and MKA choices at secY or Tx/ Rx level - common configurations in Tx/ Rx will be repeated and any change in model/ test script in common config needs to be done twice. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would like to discuss this with some you and some other MacSec stakeholders if possible. Need to also discuss if external ( to Keysight ) is planned for this model or has been done. Ideally prefer validations to be built in into model where possible not allowing users to make mistakes at compile time itself. Not sure on this. Need to also see what are the number of common parameters you describe. |
||
description: >- | ||
This contains the properties of Secure Entity (SecY). | ||
$ref: '#/components/schemas/Macsec' | ||
x-field-uid: 2 | ||
|
||
Macsec: | ||
description: >- | ||
Configuration of a Secure Entity (SecY). | ||
type: object | ||
required: [name] | ||
properties: | ||
name: | ||
x-include: ../../common/common.yaml#/components/schemas/Named.Object/properties/name | ||
x-field-uid: 1 | ||
static_key: | ||
description: >- | ||
Static key properties properties of SecY. Static key is used in absence MKA. | ||
$ref: './statickey.yaml#/components/schemas/Macsec.StaticKey' | ||
x-field-uid: 2 | ||
tx: | ||
description: >- | ||
Tx properties of SecY. | ||
$ref: './tx.yaml#/components/schemas/Macsec.Tx' | ||
x-field-uid: 3 | ||
rx: | ||
description: >- | ||
Rx properties of SecY. | ||
$ref: './rx.yaml#/components/schemas/Macsec.Rx' | ||
x-field-uid: 4 | ||
crypto_engine: | ||
description: >- | ||
Crypto engine properties of SecY. | ||
$ref: './cryptoengine.yaml#/components/schemas/Macsec.CryptoEngine' | ||
x-field-uid: 5 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
components: | ||
schemas: | ||
Macsec.Rx: | ||
description: >- | ||
A container for Rx settings of SecY. | ||
type: object | ||
properties: | ||
replay_protection: | ||
description: |- | ||
Enable replay protection on not. | ||
type: boolean | ||
default: false | ||
x-field-uid: 1 | ||
replay_window: | ||
description: |- | ||
Replay window size. | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
default: 1 | ||
x-field-uid: 2 | ||
static_key: | ||
description: |- | ||
Rx settings for static key. | ||
$ref: '#/components/schemas/Macsec.Rx.StaticKey' | ||
x-field-uid: 3 | ||
Macsec.Rx.StaticKey: | ||
description: >- | ||
Container for Rx setting for static key. | ||
type: object | ||
properties: | ||
scs: | ||
description: >- | ||
Rx secure channels. | ||
type: array | ||
items: | ||
$ref: './rxsc.yaml#/components/schemas/Macsec.RxSc' | ||
x-field-uid: 1 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
components: | ||
schemas: | ||
Macsec.RxSc: | ||
description: |- | ||
Rx SC settings. | ||
type: object | ||
properties: | ||
dut_system_id: | ||
description: |- | ||
System ID in DUT SCI. | ||
type: string | ||
format: mac | ||
x-field-uid: 1 | ||
dut_port_id: | ||
description: |- | ||
Port ID in DUT SCI. | ||
type: integer | ||
format: uint32 | ||
minimum: 1 | ||
maximum: 65535 | ||
default: 1 | ||
x-field-uid: 2 | ||
dut_msb_xpn: | ||
description: |- | ||
DUT MSB of XPN. The 32 most significant bits of the XPN that DUT will be using to construct the 64 bits XPN value when test starts. | ||
type: integer | ||
format: uint32 | ||
minimum: 0 | ||
maximum: 4294967295 | ||
default: 0x00000000 | ||
x-field-uid: 3 | ||
saks: | ||
description: |- | ||
Rx SAK pool. | ||
type: array | ||
items: | ||
$ref: './statickey.yaml#/components/schemas/Macsec.StaticKey.Sak' | ||
x-field-uid: 4 |
Uh oh!
There was an error while loading. Please reload this page.