Skip to content

Commit be216ad

Browse files
committed
Enforce 24 bit VNI range in the negative VNI test
Negative VNI test was failing for another reason and was not testing the actual range enforcement. Correct it. Signed-off-by: Guvenc Gulce <guevenc.guelce@sap.com>
1 parent 9e0dfaf commit be216ad

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

go/dpservice-go/client/client_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1464,7 +1464,6 @@ var _ = Describe("negative loadbalancer related tests", Label("negative"), func(
14641464

14651465
Context("When using loadbalancer functions", Label("loadbalancer"), Ordered, func() {
14661466
var lb *api.LoadBalancer
1467-
var res *api.LoadBalancer
14681467
var err error
14691468

14701469
It("should not create", func() {
@@ -1492,48 +1491,48 @@ var _ = Describe("negative loadbalancer related tests", Label("negative"), func(
14921491

14931492
By("not defining loadbalancer virtual ip")
14941493
lb.Spec.LbVipIP = nil
1495-
res, err = dpdkClient.CreateLoadBalancer(ctx, lb)
1494+
_, err = dpdkClient.CreateLoadBalancer(ctx, lb)
14961495
Expect(err).To(HaveOccurred())
14971496
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalanced_ip"))
14981497

14991498
By("not defining ID")
15001499
lb.Spec.LbVipIP = &lbVipIp
15011500
lb.ID = ""
1502-
res, err = dpdkClient.CreateLoadBalancer(ctx, lb)
1501+
_, err = dpdkClient.CreateLoadBalancer(ctx, lb)
15031502
Expect(err).To(HaveOccurred())
15041503
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalancer_id"))
15051504

15061505
By("defining lbport with incorrect protocol")
15071506
lb.ID = "lb1"
15081507
lb.Spec.Lbports = []api.LBPort{{Protocol: 999, Port: 443}}
1509-
res, err = dpdkClient.CreateLoadBalancer(ctx, lb)
1508+
_, err = dpdkClient.CreateLoadBalancer(ctx, lb)
15101509
Expect(err).To(HaveOccurred())
15111510
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalanced_ports.protocol"))
15121511

15131512
By("defining lbport with incorrect port")
15141513
lb.Spec.Lbports = []api.LBPort{{Protocol: 6, Port: 90000}}
1515-
res, err = dpdkClient.CreateLoadBalancer(ctx, lb)
1514+
_, err = dpdkClient.CreateLoadBalancer(ctx, lb)
15161515
Expect(err).To(HaveOccurred())
15171516
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalanced_ports.port"))
15181517

15191518
By("defining incorrect vni")
15201519
lb.Spec.Lbports = []api.LBPort{{Protocol: 6, Port: 443}}
15211520
lb.Spec.VNI = 999999999
1522-
res, err = dpdkClient.CreateLoadBalancer(ctx, lb)
1521+
_, err = dpdkClient.CreateLoadBalancer(ctx, lb)
15231522
Expect(err).To(HaveOccurred())
1524-
Expect(res.GetStatus().Code).To(Equal(uint32(errors.VNI_INIT4)))
1523+
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = VNI exceeds 24-bit range"))
15251524
})
15261525

15271526
It("should not get", func() {
15281527
By("not defining loadbalancer ID")
1529-
res, err = dpdkClient.GetLoadBalancer(ctx, "")
1528+
_, err = dpdkClient.GetLoadBalancer(ctx, "")
15301529
Expect(err).To(HaveOccurred())
15311530
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalancer_id"))
15321531
})
15331532

15341533
It("should not delete", func() {
15351534
By("not defining loadbalancer ID")
1536-
res, err = dpdkClient.DeleteLoadBalancer(ctx, "")
1535+
_, err = dpdkClient.DeleteLoadBalancer(ctx, "")
15371536
Expect(err).To(HaveOccurred())
15381537
Expect(err.Error()).To(Equal("rpc error: code = InvalidArgument desc = Invalid loadbalancer_id"))
15391538
})

include/dp_util.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extern "C" {
2121
#define DP_IFACE_PXE_MAX_LEN 32
2222
#define DP_LB_ID_MAX_LEN 64
2323
#define DP_LB_MAX_PORTS 16
24+
#define DP_VNI_MAX_SIZE 0xFFFFFF
2425

2526
#define DP_MAC_EQUAL(mac1, mac2) (((mac1)->addr_bytes[0] == (mac2)->addr_bytes[0]) && \
2627
((mac1)->addr_bytes[1] == (mac2)->addr_bytes[1]) && \

src/grpc/dp_async_grpc.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,8 @@ const char* CreateLoadBalancerCall::FillRequest(struct dpgrpc_request* request)
713713
DP_LOG_UNDERLAY(request_.preferred_underlay_route().c_str()));
714714
if (SNPRINTF_FAILED(request->add_lb.lb_id, request_.loadbalancer_id()))
715715
return "Invalid loadbalancer_id";
716+
if (request_.vni() > DP_VNI_MAX_SIZE)
717+
return "VNI exceeds 24-bit range";
716718
request->add_lb.vni = request_.vni();
717719
if (!GrpcConv::GrpcToDpAddress(request_.loadbalanced_ip(), &request->add_lb.addr))
718720
return "Invalid loadbalanced_ip";

0 commit comments

Comments
 (0)