Skip to content

Commit 363b489

Browse files
New PR CNF950DU
1 parent 2092035 commit 363b489

7 files changed

+650
-0
lines changed

_topic_map.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1803,6 +1803,9 @@ Topics:
18031803
- Name: Performance Addon Operator for low latency nodes
18041804
File: cnf-performance-addon-operator-for-low-latency-nodes
18051805
Distros: openshift-origin,openshift-enterprise,openshift-webscale
1806+
- Name: Provisioning and deploying a distributed unit (DU)
1807+
File: cnf-provisioning-and-deploying-a-distributed-unit
1808+
Distros: openshift-webscale
18061809
---
18071810
Name: Backup and restore
18081811
Dir: backup_and_restore
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
// CNF-950 4.7 Deploying the DU infrastructure profile
2+
// Module included in the following assemblies:
3+
//
4+
// *cnf-provisioning-and-deploying-a-distributed-unit.adoc
5+
6+
[id="scalability_and_performance/cnf-deploying-the-du-infrastructure-profile_{context}"]
7+
= Deploying the DU infrastructure profile
8+
9+
[id="cnf-creating-the-performance-addon-operator-and-du-performance-profile_{context}"]
10+
== Creating the Performance Addon Operator and DU performance profile
11+
12+
. Create and apply the performance profile, for example:
13+
+
14+
[source,yaml]
15+
----
16+
cat <<EOF | oc apply -f -
17+
apiVersion: performance.openshift.io/v1
18+
kind: PerformanceProfile
19+
metadata:
20+
# This profile is for typical lab DELL R640 with 2 x 26 pcores
21+
name: perf-example
22+
spec:
23+
additionalKernelArgs:
24+
- nosmt
25+
cpu:
26+
# Temp. workaround for RT kernel bugs that consume too much
27+
# CPU power: add more isolated cores
28+
isolated: "1,3,5,7,9-51" <1>
29+
reserved: "0,2,4,6,8" <2>
30+
hugepages:
31+
defaultHugepagesSize: 1G
32+
pages:
33+
- count: 16 <3>
34+
size: 1G
35+
node: 0
36+
nodeSelector:
37+
# Pay attention to the node label, create MCP accordingly
38+
node-role.kubernetes.io/worker-cnf: ""
39+
numa:
40+
topologyPolicy: "restricted"
41+
realTimeKernel:
42+
# For CU should be false
43+
enabled: true
44+
45+
EOF
46+
----
47+
<1> Configure this line based upon the customer CPU hardware selected to run the DU.
48+
<2> Configure this line based upon the customer CPU hardware selected to run the DU.
49+
<3> Configure this line based upon the customer memory configuration selected to run the DU.
50+
51+
. Use the following command to verify the changes have been applied to the cluster:
52+
+
53+
[source,terminal]
54+
----
55+
$ oc wait mcp/worker-cnf --for condition="updated"
56+
----
57+
58+
[id="cnf-creating-the-ptp-operator-and-slave-profile_{context}"]
59+
== Creating the PTP Operator and slave profile
60+
61+
. Apply the PTP configuration, for example:
62+
+
63+
[source,yaml]
64+
----
65+
cat <<EOF | oc apply -f -
66+
apiVersion: ptp.openshift.io/v1
67+
kind: PtpConfig
68+
metadata:
69+
name: slave
70+
namespace: openshift-ptp
71+
spec:
72+
profile:
73+
- name: "slave"
74+
# The interface name is hardware-specific
75+
interface: "eno1" <1>
76+
ptp4lOpts: "-2 -s --summary_interval -4" <2>
77+
phc2sysOpts: "-a -r -n 24" <3>
78+
ptp4lConf: |
79+
[global]
80+
#
81+
# Default Data Set
82+
#
83+
twoStepFlag 1
84+
slaveOnly 0
85+
priority1 128
86+
priority2 128
87+
domainNumber 24 <4>
88+
#utc_offset 37
89+
clockClass 248
90+
clockAccuracy 0xFE
91+
offsetScaledLogVariance 0xFFFF
92+
free_running 0
93+
freq_est_interval 1
94+
dscp_event 0
95+
dscp_general 0
96+
dataset_comparison ieee1588
97+
G.8275.defaultDS.localPriority 128
98+
#
99+
# Port Data Set
100+
#
101+
logAnnounceInterval -3 <5>
102+
logSyncInterval -4 <5>
103+
logMinDelayReqInterval -4 <5>
104+
logMinPdelayReqInterval -4 <5>
105+
announceReceiptTimeout 3 <5>
106+
syncReceiptTimeout 0
107+
delayAsymmetry 0
108+
fault_reset_interval 4
109+
neighborPropDelayThresh 20000000
110+
masterOnly 0
111+
G.8275.portDS.localPriority 128
112+
#
113+
# Run time options
114+
#
115+
assume_two_step 0
116+
logging_level 6
117+
path_trace_enabled 0
118+
follow_up_info 0
119+
hybrid_e2e 0
120+
inhibit_multicast_service 0
121+
net_sync_monitor 0
122+
tc_spanning_tree 0
123+
tx_timestamp_timeout 1
124+
unicast_listen 0
125+
unicast_master_table 0
126+
unicast_req_duration 3600
127+
use_syslog 1
128+
verbose 0
129+
summary_interval 0
130+
kernel_leap 1
131+
check_fup_sync 0
132+
#
133+
# Servo Options
134+
#
135+
pi_proportional_const 0.0
136+
pi_integral_const 0.0
137+
pi_proportional_scale 0.0
138+
pi_proportional_exponent -0.3
139+
pi_proportional_norm_max 0.7
140+
pi_integral_scale 0.0
141+
pi_integral_exponent 0.4
142+
pi_integral_norm_max 0.3
143+
step_threshold 0.0
144+
first_step_threshold 0.00002
145+
max_frequency 900000000
146+
clock_servo pi
147+
sanity_freq_limit 200000000
148+
ntpshm_segment 0
149+
#
150+
# Transport options
151+
#
152+
transportSpecific 0x0
153+
ptp_dst_mac 01:1B:19:00:00:00
154+
p2p_dst_mac 01:80:C2:00:00:0E
155+
udp_ttl 1
156+
udp6_scope 0x0E
157+
uds_address /var/run/ptp4l
158+
#
159+
# Default interface options
160+
#
161+
clock_type OC
162+
network_transport UDPv4
163+
delay_mechanism E2E
164+
time_stamping hardware
165+
tsproc_mode filter
166+
delay_filter moving_median
167+
delay_filter_length 10
168+
egressLatency 0
169+
ingressLatency 0
170+
boundary_clock_jbod 0
171+
#
172+
# Clock description
173+
#
174+
productDescription ;;
175+
revisionData ;;
176+
manufacturerIdentity 00:00:00
177+
userDescription ;
178+
timeSource 0xA0
179+
recommend:
180+
- profile: "slave"
181+
priority: 4
182+
match:
183+
- nodeLabel: "ptp/slave"
184+
185+
EOF
186+
----
187+
<1> The interface selected needs to match the Linux interface name.
188+
<2> `-2` configures Ethernet encapsulation of PTP. `--summary_interval -4` sets the logging interval.
189+
This is currently set to match `logSyncInterval -4`.
190+
<3> `-n 24` must match the `domainNumber 24`.
191+
<4> `domainNumber 24` must match the `-n 24`.
192+
<5> These variables are set to enable the G.8275.1 profile for PTP.
193+
194+
[id="cnf-creating-the-sriov-operator-and-associated-profiles_{context}"]
195+
== Creating the SR-IOV Operator and associated profiles
196+
197+
. Apply the SR-IOV network node policy, for example:
198+
+
199+
[source,yaml]
200+
----
201+
cat <<EOF | oc apply -f -
202+
apiVersion: sriovnetwork.openshift.io/v1
203+
kind: SriovNetworkNodePolicy
204+
metadata:
205+
name: policy-mh-dpdk-site-1-fqdn-worker1
206+
namespace: openshift-sriov-network-operator
207+
spec:
208+
# This works for Intel based NICs. <1>
209+
# For Mellanox please change to:
210+
# deviceType: netdevice
211+
# isRdma: true
212+
deviceType: vfio-pci
213+
isRdma: false
214+
nicSelector:
215+
# The exact physical function name must match the hardware used
216+
pfNames: ["ens1f1"] <2>
217+
nodeSelector:
218+
node-role.kubernetes.io/worker-cnf: ""
219+
feature.node.kubernetes.io/network-sriov.capable: "true"
220+
numVfs: 4
221+
priority: 10
222+
resourceName: mh_u_site_1_fqdn_worker1
223+
224+
EOF
225+
----
226+
<1> This file works for Intel and must change for Mellanox, as described in
227+
_SR-IOV configuration notes_.
228+
<2> Must be updated with the specific device on the server.
229+
230+
. Create the SR-IOV network, for example:
231+
+
232+
[source,yaml]
233+
----
234+
cat <<EOF | oc apply -f -
235+
apiVersion: sriovnetwork.openshift.io/v1
236+
kind: SriovNetwork
237+
metadata:
238+
name: mh-net-u-site-1-fqdn-worker1
239+
namespace: openshift-sriov-network-operator
240+
spec:
241+
ipam: |
242+
{
243+
}
244+
networkNamespace: mh-net-ns-site-1-fqdn-worker1
245+
resourceName: mh_u_site_1_fqdn_worker1
246+
vlan: 100 <1>
247+
---
248+
apiVersion: v1
249+
kind: Namespace
250+
metadata:
251+
name: mh-net-ns-site-1-fqdn-worker1
252+
253+
EOF
254+
----
255+
<1> Modify this line to match the DU’s networking.

0 commit comments

Comments
 (0)