bridge: check vlan id when loading net conf
Signed-off-by: Bruce Ma <brucema19901024@gmail.com>
This commit is contained in:
parent
0f19aa2f8d
commit
e70558cbe1
@ -75,6 +75,9 @@ func loadNetConf(bytes []byte) (*NetConf, string, error) {
|
|||||||
if err := json.Unmarshal(bytes, n); err != nil {
|
if err := json.Unmarshal(bytes, n); err != nil {
|
||||||
return nil, "", fmt.Errorf("failed to load netconf: %v", err)
|
return nil, "", fmt.Errorf("failed to load netconf: %v", err)
|
||||||
}
|
}
|
||||||
|
if n.Vlan < 0 || n.Vlan > 4094 {
|
||||||
|
return nil, "", fmt.Errorf(`invalid VLAN ID %d (must be between 0 and 4094)`, n.Vlan)
|
||||||
|
}
|
||||||
return n, n.CNIVersion, nil
|
return n, n.CNIVersion, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1645,4 +1645,48 @@ var _ = Describe("bridge Operations", func() {
|
|||||||
})
|
})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("check vlan id when loading net conf", func() {
|
||||||
|
tests := []struct {
|
||||||
|
tc testCase
|
||||||
|
err error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
tc: testCase{
|
||||||
|
cniVersion: "0.4.0",
|
||||||
|
},
|
||||||
|
err: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tc: testCase{
|
||||||
|
cniVersion: "0.4.0",
|
||||||
|
vlan: 0,
|
||||||
|
},
|
||||||
|
err: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tc: testCase{
|
||||||
|
cniVersion: "0.4.0",
|
||||||
|
vlan: -100,
|
||||||
|
},
|
||||||
|
err: fmt.Errorf("invalid VLAN ID -100 (must be between 0 and 4094)"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tc: testCase{
|
||||||
|
cniVersion: "0.4.0",
|
||||||
|
vlan: 5000,
|
||||||
|
},
|
||||||
|
err: fmt.Errorf("invalid VLAN ID 5000 (must be between 0 and 4094)"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
_, _, err := loadNetConf([]byte(test.tc.netConfJSON("")))
|
||||||
|
if test.err == nil {
|
||||||
|
Expect(err).To(BeNil())
|
||||||
|
} else {
|
||||||
|
Expect(err).To(Equal(test.err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user