Skip to content

Commit 703b9f2

Browse files
Revert "Merge pull request openshift#13162 from dcbw/sdn-fragments"
This reverts commit fc723f0, reversing changes made to d759401. Signed-off-by: Steve Kuznetsov <[email protected]>
1 parent fb1f660 commit 703b9f2

File tree

2 files changed

+18
-36
lines changed

2 files changed

+18
-36
lines changed

pkg/sdn/plugin/controller.go

+18-31
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,6 @@ func (plugin *OsdnNode) SetupSDN() (bool, error) {
225225
if err != nil {
226226
return false, err
227227
}
228-
err = plugin.ovs.SetFrags("nx-match")
229-
if err != nil {
230-
return false, err
231-
}
232228
_ = plugin.ovs.DeletePort(VXLAN)
233229
_, err = plugin.ovs.AddPort(VXLAN, 1, "type=vxlan", `options:remote_ip="flow"`, `options:key="flow"`)
234230
if err != nil {
@@ -461,44 +457,35 @@ func (plugin *OsdnNode) AddServiceRules(service *kapi.Service, netID uint32) {
461457
glog.V(5).Infof("AddServiceRules for %v", service)
462458

463459
otx := plugin.ovs.NewTransaction()
464-
action := fmt.Sprintf(", priority=100, actions=load:%d->NXM_NX_REG1[], load:2->NXM_NX_REG2[], goto_table:80", netID)
465-
466-
// Add blanket rule allowing subsequent IP fragments
467-
otx.AddFlow(generateBaseServiceRule(service.Spec.ClusterIP) + ", ip_frag=later" + action)
468-
469460
for _, port := range service.Spec.Ports {
470-
baseRule, err := generateBaseAddServiceRule(service.Spec.ClusterIP, port.Protocol, int(port.Port))
471-
if err != nil {
472-
glog.Errorf("Error creating OVS flow for service %v, netid %d: %v", service, netID, err)
461+
otx.AddFlow(generateAddServiceRule(netID, service.Spec.ClusterIP, port.Protocol, int(port.Port)))
462+
if err := otx.EndTransaction(); err != nil {
463+
glog.Errorf("Error adding OVS flows for service %v, netid %d: %v", service, netID, err)
473464
}
474-
otx.AddFlow(baseRule + action)
475-
}
476-
477-
if err := otx.EndTransaction(); err != nil {
478-
glog.Errorf("Error adding OVS flows for service %v, netid %d: %v", service, netID, err)
479465
}
480466
}
481467

482468
func (plugin *OsdnNode) DeleteServiceRules(service *kapi.Service) {
483469
glog.V(5).Infof("DeleteServiceRules for %v", service)
484470

485471
otx := plugin.ovs.NewTransaction()
486-
otx.DeleteFlows(generateBaseServiceRule(service.Spec.ClusterIP))
487-
otx.EndTransaction()
472+
for _, port := range service.Spec.Ports {
473+
otx.DeleteFlows(generateDeleteServiceRule(service.Spec.ClusterIP, port.Protocol, int(port.Port)))
474+
if err := otx.EndTransaction(); err != nil {
475+
glog.Errorf("Error deleting OVS flows for service %v: %v", service, err)
476+
}
477+
}
488478
}
489479

490-
func generateBaseServiceRule(IP string) string {
491-
return fmt.Sprintf("table=60, ip, nw_dst=%s", IP)
480+
func generateBaseServiceRule(IP string, protocol kapi.Protocol, port int) string {
481+
return fmt.Sprintf("table=60, %s, nw_dst=%s, tp_dst=%d", strings.ToLower(string(protocol)), IP, port)
492482
}
493483

494-
func generateBaseAddServiceRule(IP string, protocol kapi.Protocol, port int) (string, error) {
495-
var dst string
496-
if protocol == kapi.ProtocolUDP {
497-
dst = fmt.Sprintf(", udp, udp_dst=%d", port)
498-
} else if protocol == kapi.ProtocolTCP {
499-
dst = fmt.Sprintf(", tcp, tcp_dst=%d", port)
500-
} else {
501-
return "", fmt.Errorf("unhandled protocol %v", protocol)
502-
}
503-
return generateBaseServiceRule(IP) + dst, nil
484+
func generateAddServiceRule(netID uint32, IP string, protocol kapi.Protocol, port int) string {
485+
baseRule := generateBaseServiceRule(IP, protocol, port)
486+
return fmt.Sprintf("%s, priority=100, actions=load:%d->NXM_NX_REG1[], load:2->NXM_NX_REG2[], goto_table:80", baseRule, netID)
487+
}
488+
489+
func generateDeleteServiceRule(IP string, protocol kapi.Protocol, port int) string {
490+
return generateBaseServiceRule(IP, protocol, port)
504491
}

pkg/util/ovs/ovs.go

-5
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,6 @@ func (ovsif *Interface) DeletePort(port string) error {
144144
return err
145145
}
146146

147-
func (ovsif *Interface) SetFrags(mode string) error {
148-
_, err := ovsif.exec(OVS_OFCTL, "set-frags", ovsif.bridge, mode)
149-
return err
150-
}
151-
152147
type Transaction struct {
153148
ovsif *Interface
154149
err error

0 commit comments

Comments
 (0)