@@ -112,6 +112,29 @@ func (e *NetworkManager) Diff(oldConfig, newConfig *clusterlinkv1alpha1.NodeConf
112112 createConfig .Routes = createRecord
113113 isSame = false
114114 }
115+ // ipsec:
116+ if flag , deleteRecord , createRecord := compareFunc (oldConfig .XfrmPolicies , newConfig .XfrmPolicies , func (a , b clusterlinkv1alpha1.XfrmPolicy ) bool {
117+ return a .Compare (b )
118+ }); ! flag {
119+ deleteConfig .XfrmPolicies = deleteRecord
120+ createConfig .XfrmPolicies = createRecord
121+ isSame = false
122+ }
123+ if flag , deleteRecord , createRecord := compareFunc (oldConfig .XfrmStates , newConfig .XfrmStates , func (a , b clusterlinkv1alpha1.XfrmState ) bool {
124+ return a .Compare (b )
125+ }); ! flag {
126+ deleteConfig .XfrmStates = deleteRecord
127+ createConfig .XfrmStates = createRecord
128+ isSame = false
129+ }
130+ //ipset
131+ if flag , deleteRecord , createRecord := compareFunc (oldConfig .IPsetsAvoidMasqs , newConfig .IPsetsAvoidMasqs , func (a , b clusterlinkv1alpha1.IPset ) bool {
132+ return a .Compare (b )
133+ }); ! flag {
134+ deleteConfig .IPsetsAvoidMasqs = deleteRecord
135+ createConfig .IPsetsAvoidMasqs = createRecord
136+ isSame = false
137+ }
115138 // iptables:
116139 if flag , deleteRecord , createRecord := compareFunc (oldConfig .Iptables , newConfig .Iptables , func (a , b clusterlinkv1alpha1.Iptables ) bool {
117140 return a .Compare (b )
@@ -188,6 +211,24 @@ func (e *NetworkManager) WriteSys(configDiff *ConfigDiff) error {
188211 errs = errors .Wrap (err , fmt .Sprint (errs ))
189212 }
190213 }
214+ if config .XfrmPolicies != nil {
215+ if err := e .NetworkInterface .DeleteXfrmPolicies (config .XfrmPolicies ); err != nil {
216+ klog .Warning (err )
217+ errs = errors .Wrap (err , fmt .Sprint (errs ))
218+ }
219+ }
220+ if config .XfrmStates != nil {
221+ if err := e .NetworkInterface .DeleteXfrmStates (config .XfrmStates ); err != nil {
222+ klog .Warning (err )
223+ errs = errors .Wrap (err , fmt .Sprint (errs ))
224+ }
225+ }
226+ if config .IPsetsAvoidMasqs != nil {
227+ if err := e .NetworkInterface .DeleteIPsetsAvoidMasq (config .IPsetsAvoidMasqs ); err != nil {
228+ klog .Warning (err )
229+ errs = errors .Wrap (err , fmt .Sprint (errs ))
230+ }
231+ }
191232 }
192233
193234 if configDiff .createConfig != nil {
@@ -223,6 +264,24 @@ func (e *NetworkManager) WriteSys(configDiff *ConfigDiff) error {
223264 errs = errors .Wrap (err , fmt .Sprint (errs ))
224265 }
225266 }
267+ if config .XfrmPolicies != nil {
268+ if err := e .NetworkInterface .AddXfrmPolicies (config .XfrmPolicies ); err != nil {
269+ klog .Warning (err )
270+ errs = errors .Wrap (err , fmt .Sprint (errs ))
271+ }
272+ }
273+ if config .XfrmStates != nil {
274+ if err := e .NetworkInterface .AddXfrmStates (config .XfrmStates ); err != nil {
275+ klog .Warning (err )
276+ errs = errors .Wrap (err , fmt .Sprint (errs ))
277+ }
278+ }
279+ if config .IPsetsAvoidMasqs != nil {
280+ if err := e .NetworkInterface .AddIPsetsAvoidMasq (config .IPsetsAvoidMasqs ); err != nil {
281+ klog .Warning (err )
282+ errs = errors .Wrap (err , fmt .Sprint (errs ))
283+ }
284+ }
226285 }
227286
228287 return errs
@@ -254,11 +313,14 @@ func (e *NetworkManager) UpdateFromChecker() NodeConfigSyncStatus {
254313}
255314
256315func printNodeConfig (data * clusterlinkv1alpha1.NodeConfigSpec ) {
257- klog .Infof ("device: " , data .Devices )
258- klog .Infof ("Arps: " , data .Arps )
259- klog .Infof ("Fdbs: " , data .Fdbs )
260- klog .Infof ("Iptables: " , data .Iptables )
261- klog .Infof ("Routes: " , data .Routes )
316+ klog .Infof ("device: %v" , data .Devices )
317+ klog .Infof ("Arps: %v" , data .Arps )
318+ klog .Infof ("Fdbs: %v" , data .Fdbs )
319+ klog .Infof ("Iptables: %v" , data .Iptables )
320+ klog .Infof ("Routes: %v" , data .Routes )
321+ klog .Infof ("XfrmPolicys: %v" , data .XfrmPolicies )
322+ klog .Infof ("XfrmStates: %v" , data .XfrmStates )
323+ klog .Infof ("IPsetsAvoidMasqs: %v" , data .IPsetsAvoidMasqs )
262324}
263325
264326func (e * NetworkManager ) UpdateSync () NodeConfigSyncStatus {
0 commit comments