-
Notifications
You must be signed in to change notification settings - Fork 17
Hardware accelerated crypto engine for MACsec encryption/ decryption per device or per LAG member port at line rate. #459
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
Open
sasubrata
wants to merge
154
commits into
master
Choose a base branch
from
dev_macsec
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 133 commits
Commits
Show all changes
154 commits
Select commit
Hold shift + click to select a range
a833e2c
MACsec OTG model reworked based on review of model from macsec branch
sasubrata 043e70d
Update auto generated content
actions-user 1466dd5
More rework based on review comments
sasubrata bbfeaa5
Add missing file
sasubrata 4ad185d
Update auto generated content
actions-user c0e9db6
Fix secure channels
sasubrata 0c60fdc
Update auto generated content
actions-user a15ddb0
Fix secure channels
sasubrata 1d6a931
Update auto generated content
actions-user a530792
Fix secure channels
sasubrata a1f07d4
Update auto generated content
actions-user f9d65ef
Fix secure channels
sasubrata 7c2237b
Update auto generated content
actions-user ace06cd
Correct min and max length of hex fields
sasubrata 8dd2a49
Update auto generated content
actions-user db360eb
Update key time descriptions
sasubrata 3ac4645
Update auto generated content
actions-user 4cb378a
Add MACsec and MKA metrics
sasubrata 7e591d9
Update auto generated content
actions-user 3d2fb73
More rework based on review
sasubrata f837222
Update auto generated content
actions-user d79bb26
Split time offset and key chain start time into subfields
sasubrata 54a0890
Update auto generated content
actions-user 58c9d55
Fix time fields
sasubrata 8ec997e
Update auto generated content
actions-user 3b8f846
Fix time fields
sasubrata 4f18748
Merge branch 'dev_macsec' of https://github.com/open-traffic-generato…
sasubrata 468460f
Update auto generated content
actions-user 6c143f5
Add integer format to time subfields
sasubrata 2a97b27
Change class name from Macsec to SecureEntity to match field name sec…
sasubrata 17a822e
Update auto generated content
actions-user 988a37d
Change description of psk_chain_start_time
sasubrata 584f994
Update auto generated content
actions-user 5ad62b2
Try to set psk chain start time description from the field descriptio…
sasubrata 97eb41d
Update auto generated content
actions-user ab0a006
Move re-shared key(PSK) chain start time description
sasubrata 938bb1d
Update auto generated content
actions-user d2d4a90
Add lifetime validity information
sasubrata 1799329
Update auto generated content
actions-user 9eebbb9
add required fields
sasubrata af0cce4
Update auto generated content
actions-user 5c12526
Minutes field max limit set to 59
sasubrata dfb1fe0
Remove encrypt_decrypt engine type from the model as of now as it is …
sasubrata 2b9ad21
Update auto generated content
actions-user 24093be
Some change in description to reflect previus change in redocly view
sasubrata a3fac6a
Rename bad_pkts_rx to in_pkts_bad at one place
sasubrata 84b4124
Update auto generated content
actions-user 416b8d7
Merge branch 'master' into dev_macsec
e9f4074
Manually merge previously done hardware MACsec configuration from mac…
sasubrata 6741967
Fix errors in cryptoengine.yaml during manual merge
sasubrata 8c1f86a
Fix error in cryptoengine.yaml during manual merge
sasubrata 2c8bf19
Update auto generated content
actions-user 7968be1
Add mode field in layer1 so that hardware MACsec modes can be set to …
sasubrata 2c21327
Update auto generated content
actions-user fac4a1e
Update Tx PN settings for encrypt/decrypt engine
sasubrata 2a56735
Update auto generated content
actions-user 26709f3
Move HW MACsec global settings from device->macsec to options -> per_…
sasubrata fbc94ee
Corrected perportoptions YAML format
sasubrata 8a478c9
Update auto generated content
actions-user 7d52b51
Add VLAN options in data plane
sasubrata ab65605
Correction in VLAN options in data plane
sasubrata 194da35
Update auto generated content
actions-user 8b566c5
Update in VLAN options in data plane
sasubrata 47eac05
Update auto generated content
actions-user c9a489a
Modify ethernet VLANs
sasubrata 3909c34
Update auto generated content
actions-user cdd0564
Add information on per port global hardware accelertation config path…
sasubrata e015bef
Update auto generated content
actions-user 7122296
Remove max_device_per_ca from per port global MACsec config as it is …
sasubrata b420ed0
Update auto generated content
actions-user 706436f
Make per port MACsec global config more intuitive by adding choices
sasubrata 12b8389
Update auto generated content
actions-user 97bd032
Fix per port MACsec global config
sasubrata ef95735
Update auto generated content
actions-user 17b960d
Change max_ca_count type to enum
sasubrata ffeb343
Update auto generated content
actions-user e906cfd
Change max_ca_count type to enum of string
sasubrata c3aa3a7
Change max_ca_count type to enum of string with value also of string …
sasubrata a6b4640
Update auto generated content
actions-user 7bb2995
Add validate Rx frames control to MACsec global per port options.
sasubrata 229799f
Merge branch 'master' into dev_macsec
sasubrata c4f88bc
Merge branch 'master' into dev_macsec
sasubrata b2bcc7f
Fix build error in MACsec global per port options.
sasubrata 3510510
Fix build error in MACsec dataplane crypto engine by increasing max l…
sasubrata 9b7d3b1
Fix build error in MACsec global per port options.
sasubrata 469e851
Fix build error in MACsec global per port options.
sasubrata 3c98612
Update auto generated content
actions-user f16d5f3
Add MACsec option per LAG member port
sasubrata 799fd9d
Update auto generated content
actions-user fc22218
Support for exclusion of protocols from MACsec encapsulation per LAG …
sasubrata 5419c33
Update auto generated content
actions-user 6b22117
Support for exclusion of no protocols from MACsec encapsulation per L…
sasubrata 203e4b6
Update auto generated content
actions-user e200ecf
Merge branch 'master' into dev_macsec
rudranil-das 7825313
Update auto generated content
actions-user 2c46f9d
Move mode to to last position in layer1
sasubrata 6bd31b2
Update auto generated content
actions-user 8150d8c
Modify mode in layer1
sasubrata 935d745
Update auto generated content
actions-user 3133142
Notes on LAG with MACsec configuration exclusivity
sasubrata 2f03810
Update auto generated content
actions-user b38ba5e
Update LAG with MACsec object.
sasubrata b9f7b5e
Merge branch 'dev_macsec' of https://github.com/open-traffic-generato…
sasubrata 1eb21a8
Update auto generated content
actions-user ce54df0
Remove mode from layer1 as per PR review comment.
sasubrata 8e5063b
Merge branch 'dev_macsec' of https://github.com/open-traffic-generato…
sasubrata bacb637
Update auto generated content
actions-user 7c356f0
Change hex string settings
sasubrata 9e42004
Merge branch 'dev_macsec' of https://github.com/open-traffic-generato…
sasubrata 030c7ab
Update auto generated content
actions-user 67b225d
Update description on hardware acceleration type.
sasubrata 7b2d0e9
Update auto generated content
actions-user 87856e5
Change description in multiple fields as per PR review.
sasubrata aa6c460
Update auto generated content
actions-user edd1285
Remove MSK from key source as it is not supported in model.
sasubrata a48bf48
Update auto generated content
actions-user bb2456e
Merge branch 'master' into dev_macsec
rudranil-das 8340c94
Update auto generated content
actions-user 4585306
Remove none and disabled choices from Rx frame validation. Add import…
sasubrata 81efc48
Update auto generated content
actions-user 273ac18
Duplicate MACsec object in LAG so that desired attributes can be LAG …
sasubrata 7feb1a4
Update auto generated content
actions-user 0443c07
Add missing file. Also refer to LAG MACsec secY
sasubrata 6993f29
Rename LAG MACsec secY
sasubrata 0bb7d3d
Update auto generated content
actions-user 3714423
Rename all attributes in LAG port MACsec and inside data plane
sasubrata 1f85811
Update auto generated content
actions-user 43a3c22
Update hardware acceleration
sasubrata d974014
Update auto generated content
actions-user 5261ddd
Move validate frames settings out of HW acceleration because some sof…
sasubrata a56b8b6
Update auto generated content
actions-user d6a0895
Correct paths and attribute name qualification.
sasubrata f6c02e9
Update auto generated content
actions-user c120385
Fix x-field-uid related break
sasubrata edcc4d4
Merge branch 'dev_macsec' of https://github.com/open-traffic-generato…
sasubrata b5a8724
Update auto generated content
actions-user ca86012
Fix typo. Add choice for crypto engine type in LAG MACsec for future …
sasubrata ffb5b59
Update auto generated content
actions-user 307970f
Changes in MKA basic as dicussed in recent review of LAG with MACsec.…
sasubrata 268d953
Update auto generated content
actions-user f605612
Add mode details to some stats
sasubrata cc29a40
Update auto generated content
actions-user 2203240
Add mode details to some MKA stats
sasubrata 7e1d761
Update auto generated content
actions-user 233a41e
add some descriptive changes
rudranil-das b73db32
Update auto generated content
actions-user 11e1cc4
Set include SCI default value to true to match implementation default…
sasubrata 061bb16
Update auto generated content
actions-user b3003dc
Correct typo in some description
sasubrata 736c32e
Update auto generated content
actions-user d0381fc
Remove include SCI option from LAG with MACsec. The SCI should be pre…
sasubrata 613fe0a
Update auto generated content
actions-user f101847
Merge branch 'master' into dev_macsec
rudranil-das db2a0ef
Update auto generated content
actions-user File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| components: | ||
| schemas: | ||
| SecureEntity.VlanOptions: | ||
| description: >- | ||
| A container for VLAN options of SecY. | ||
| type: object | ||
| properties: | ||
| encrypt_interface_vlans: | ||
| description: >- | ||
| Send interface VLANS as encrypted or not. If it is false, VLANs go in cleartext. If hardware_accelerated.inline_crypto mode is chosen, option related to offset must be changed from default 12 (to 16 for example for single cleartext VLAN) at appropriate place to handle cleartext VLAN in receive direction. | ||
| type: boolean | ||
| default: true | ||
| x-field-uid: 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| components: | ||
| schemas: | ||
| Lag.Port.Macsec.SecureEntity.CryptoEngine: | ||
| description: >- | ||
| A container of crypto engine properties of a SecY. | ||
| type: object | ||
| properties: | ||
| encrypt_decrypt: | ||
| $ref: '#/components/schemas/Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt' | ||
| x-field-uid: 1 | ||
| Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt: | ||
| description: >- | ||
| The container for configuration of crypto engine of encrypt and decrypt type. Such engine can both encrypt transmitted packets and decrypt packets on arrival. It can have hardware acceleration for faster encryption/ decryption. As both encryption and decryption are possible, stateful (e.g. TCP) traffic can be sent/ received. | ||
| type: object | ||
| properties: | ||
| tx_pn: | ||
| $ref: '#/components/schemas/Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt.TxPn' | ||
| x-field-uid: 1 | ||
| hardware_acceleration: | ||
| $ref: '#/components/schemas/Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt.HardwareAcceleration' | ||
| x-field-uid: 2 | ||
| Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt.TxPn: | ||
| description: >- | ||
| Tx packet number(PN) configuration. | ||
| type: object | ||
| properties: | ||
| starting_pn: | ||
| description: >- | ||
| The starting packet number(PN). | ||
| type: integer | ||
| format: uint32 | ||
| minimum: 1 | ||
| default: 1 | ||
| x-field-uid: 1 | ||
| starting_xpn: | ||
| description: >- | ||
| The starting extended packet number(XPN). | ||
| type: string | ||
| format: hex | ||
| minLength: 1 | ||
| maxLength: 16 | ||
| minimum: 1 | ||
| default: "01" | ||
| x-field-uid: 2 | ||
| Lag.Port.Macsec.SecureEntity.CryptoEngine.EncryptDecrypt.HardwareAcceleration: | ||
| description: >- | ||
| Hardware acceleration configuration for offloading MACsec processing to hardware. | ||
| type: object | ||
| properties: | ||
| choice: | ||
| 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/Lag.Port.Macsec.HardwareAcceleration.InlineCrypto' | ||
| x-field-uid: 2 | ||
| Lag.Port.Macsec.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_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 based on SCI system ID field. 3) SCI port ID - identify based on SCI port ID field. | ||
| type: string | ||
| default: source_mac | ||
| x-field-uid: 1 | ||
| x-enum: | ||
| source_mac: | ||
| x-field-uid: 1 | ||
| sci_sytem_id: | ||
sasubrata marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| x-field-uid: 2 | ||
| sci_port_id: | ||
| x-field-uid: 3 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| components: | ||
| schemas: | ||
| Lag.Port.Macsec.SecureEntity.DataPlane: | ||
| description: >- | ||
| A container of data plane properties. | ||
| type: object | ||
| properties: | ||
| choice: | ||
| description: >- | ||
| Choose "encapsulation" so that data packets are sent with MACsec encapsulation. Choose "no_encapsulation" so that data packets are sent without MACsec encapsulation. | ||
| type: string | ||
| default: encapsulation | ||
| x-field-uid: 1 | ||
| x-enum: | ||
| encapsulation: | ||
| x-field-uid: 1 | ||
| no_encapsulation: | ||
| x-field-uid: 2 | ||
| encapsulation: | ||
| description: >- | ||
| A container of encapsulation properties for a secure entity(SecY). | ||
| $ref: '#/components/schemas/Lag.Port.Macsec.SecureEntity.DataPlane.Encapsulation' | ||
| x-field-uid: 2 | ||
|
|
||
| Lag.Port.Macsec.SecureEntity.DataPlane.Encapsulation: | ||
| description: >- | ||
| A container of encapsulation properties for a secure entity(SecY). | ||
| type: object | ||
| required: [crypto_engine] | ||
| properties: | ||
| tx: | ||
| description: >- | ||
| Tx properties of SecY. | ||
| $ref: './tx.yaml#/components/schemas/Lag.Port.Macsec.SecureEntity.DataPlane.Tx' | ||
| x-field-uid: 1 | ||
| rx: | ||
| description: >- | ||
| Rx properties of SecY. | ||
| $ref: './rx.yaml#/components/schemas/Lag.Port.Macsec.SecureEntity.DataPlane.Rx' | ||
| x-field-uid: 2 | ||
| crypto_engine: | ||
| description: >- | ||
| Crypto engine properties of SecY. | ||
| $ref: './cryptoengine.yaml#/components/schemas/Lag.Port.Macsec.SecureEntity.CryptoEngine' | ||
| x-field-uid: 3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| components: | ||
| schemas: | ||
| Lag.Port.Macsec.SecureEntity.DataPlane.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 | ||
| validate_frames: | ||
| $ref: '#/components/schemas/Lag.Port.Macsec.SecureEntity.DataPlane.Rx.ValidateFrames' | ||
| x-field-uid: 3 | ||
| Lag.Port.Macsec.SecureEntity.DataPlane.Rx.ValidateFrames: | ||
| description: >- | ||
| Controls validation of received frames. | ||
| type: object | ||
| properties: | ||
| choice: | ||
| description: >- | ||
| Controls validation of received frames. check - enable validation, do not discard invalid frames and increment in_pkts_invalid stats. strict - enable validation and discard invalid frames and increment in_pkts_not_valid stats. | ||
| type: string | ||
| default: check | ||
| x-field-uid: 1 | ||
| x-enum: | ||
| check: | ||
| x-field-uid: 1 | ||
| strict: | ||
| x-field-uid: 2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| components: | ||
| schemas: | ||
| Lag.Port.Macsec.SecureEntity.DataPlane.Tx: | ||
| description: >- | ||
| A container of Tx properties of SecY. | ||
| type: object | ||
| properties: | ||
| end_station: | ||
| description: |- | ||
| End station on not. | ||
| type: boolean | ||
| default: false | ||
| x-field-uid: 1 | ||
| include_sci: | ||
| description: |- | ||
| Include SCI on not. | ||
| type: boolean | ||
| default: false | ||
| x-field-uid: 2 |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.