Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 1 | // SPDX-FileCopyrightText: 2021 Open Networking Foundation |
| 2 | // |
Sean Condon | 160ec1d | 2022-02-08 12:58:25 +0000 | [diff] [blame] | 3 | // SPDX-License-Identifier: Apache-2.0 |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 4 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 5 | submodule onf-slice { |
Sean Condon | 11d6f42 | 2022-01-14 13:02:03 +0000 | [diff] [blame] | 6 | belongs-to onf-enterprise { prefix ent; } |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 7 | |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 8 | import onf-aether-types{ prefix at; } |
Sean Condon | 11d6f42 | 2022-01-14 13:02:03 +0000 | [diff] [blame] | 9 | |
| 10 | include onf-upf; |
| 11 | include onf-device-group; |
| 12 | include onf-application; |
Sean Condon | 9f7966e | 2022-02-03 10:55:06 +0000 | [diff] [blame] | 13 | include onf-priority-traffic-rule; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 14 | |
| 15 | organization "Open Networking Foundation."; |
| 16 | contact "Scott Baker"; |
| 17 | description |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 18 | "An Aether Slice is |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 19 | used to connect devices with applications"; |
| 20 | |
Sean Condon | 11d6f42 | 2022-01-14 13:02:03 +0000 | [diff] [blame] | 21 | revision "2022-01-14" { |
| 22 | description "Refactored as submodule"; |
| 23 | reference "RFC 6020"; |
| 24 | } |
| 25 | |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 26 | revision "2021-09-10" { |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 27 | description "An Aether Slice"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 28 | reference "RFC 6087"; |
| 29 | } |
| 30 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 31 | typedef slice-id { |
Scott Baker | 40a7956 | 2022-02-16 15:04:50 -0800 | [diff] [blame^] | 32 | type at:aether-identifier; |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 33 | description "The typedef for slice-id"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 34 | } |
| 35 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 36 | grouping slice { |
| 37 | description "The slice grouping"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 38 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 39 | list slice { |
| 40 | key "slice-id"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 41 | description |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 42 | "List of Slices"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 43 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 44 | leaf slice-id { |
| 45 | type slice-id; |
| 46 | description "ID for this slice."; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 47 | } |
| 48 | |
Sean Condon | 9f7966e | 2022-02-03 10:55:06 +0000 | [diff] [blame] | 49 | uses at:desc-display-name; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 50 | |
| 51 | list device-group { |
| 52 | key "device-group"; |
| 53 | leaf device-group { |
| 54 | type leafref { |
Sean Condon | 9f7966e | 2022-02-03 10:55:06 +0000 | [diff] [blame] | 55 | path "../../../device-group/device-group-id"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 56 | } |
| 57 | description |
| 58 | "Link to device group"; |
| 59 | } |
| 60 | leaf enable { |
| 61 | type boolean; |
| 62 | default true; |
| 63 | description |
| 64 | "Enable this device group"; |
| 65 | } |
| 66 | description |
| 67 | "A list of device groups. Groups will only participate in |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 68 | the Slice if the enable field is set to True"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 69 | } |
| 70 | |
| 71 | leaf default-behavior { |
| 72 | type at:behavior; |
| 73 | mandatory true; |
| 74 | description |
| 75 | "Default behavior if no filter rules match"; |
| 76 | } |
| 77 | |
| 78 | list filter { |
| 79 | key "application"; |
| 80 | leaf application { |
| 81 | type leafref { |
Sean Condon | 9f7966e | 2022-02-03 10:55:06 +0000 | [diff] [blame] | 82 | path "../../../../application/application-id"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 83 | } |
| 84 | mandatory true; |
| 85 | description |
| 86 | "Link to application"; |
| 87 | } |
| 88 | leaf priority { |
| 89 | type at:priority; |
| 90 | default 0; |
| 91 | description |
| 92 | "Priority of this application"; |
| 93 | } |
| 94 | leaf allow { |
| 95 | type boolean; |
| 96 | default true; |
| 97 | description |
| 98 | "Allow or deny this application"; |
| 99 | } |
| 100 | description |
| 101 | "A list of applications to allow and/or deny. Rules are executed in |
| 102 | priority order. The first rule to match will determine the fate |
| 103 | of the packet."; |
| 104 | } |
| 105 | |
| 106 | leaf upf { |
| 107 | type leafref { |
Sean Condon | 11d6f42 | 2022-01-14 13:02:03 +0000 | [diff] [blame] | 108 | path "../../upf/upf-id"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 109 | } |
| 110 | description |
| 111 | "Link to user plane that implements this vcf"; |
| 112 | } |
| 113 | |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 114 | // the following are populated from the template |
| 115 | leaf sst { |
| 116 | type at:sst; |
| 117 | mandatory true; |
| 118 | description "Slice/Service type. Immutable."; |
| 119 | } |
| 120 | |
| 121 | leaf sd { |
| 122 | type at:sd; |
| 123 | mandatory true; |
| 124 | description "Slice differentiator. Immutable."; |
| 125 | } |
| 126 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 127 | container mbr { |
| 128 | description "Per slice Maximum Bit Rate"; |
| 129 | leaf uplink { |
| 130 | type at:bitrate; |
| 131 | units bps; |
| 132 | description "Per-Slice MBR uplink data rate in bps"; |
| 133 | } |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 134 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 135 | leaf downlink { |
| 136 | type at:bitrate; |
| 137 | units bps; |
| 138 | description "Per-Slice MBR downlink data rate in bps"; |
| 139 | } |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 140 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 141 | leaf uplink-burst-size { |
| 142 | type at:burst; |
| 143 | units bytes; |
| 144 | description "Per-Slice Uplink burst size"; |
| 145 | } |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 146 | |
Sean Condon | 24297da | 2022-01-27 09:50:34 +0000 | [diff] [blame] | 147 | leaf downlink-burst-size { |
| 148 | type at:burst; |
| 149 | units bytes; |
| 150 | description "Per-Slice Downlink burst size"; |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 151 | } |
| 152 | } |
| 153 | |
| 154 | // end of items populated from the template |
Sean Condon | 9f7966e | 2022-02-03 10:55:06 +0000 | [diff] [blame] | 155 | uses priority-traffic-rule; |
| 156 | |
Scott Baker | fdbad76 | 2022-01-03 16:00:45 -0800 | [diff] [blame] | 157 | } |
| 158 | } |
| 159 | } |