@@ -95,7 +95,7 @@ var _ = Describe("Flows", func() {
9595 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
9696
9797 // Mock getting TOR MAC
98- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , nil )
98+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
9999
100100 // check
101101 execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("00:11:22:33:44:55" , nil )
@@ -122,7 +122,7 @@ var _ = Describe("Flows", func() {
122122 execMock .EXPECT ().Execute (matchSubstring ("ovs-ofctl add-flow br-rail1" )).Return ("" , nil )
123123 netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
124124 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
125- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , nil )
125+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
126126 execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("00:11:22:33:44:55" , nil )
127127 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_uplink" ).Return ("p0" , nil )
128128 // Second IP flow fails
@@ -138,7 +138,7 @@ var _ = Describe("Flows", func() {
138138 execMock .EXPECT ().Execute (matchSubstring ("ovs-ofctl add-flow br-rail1" )).Return ("" , nil )
139139 netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
140140 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
141- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , nil )
141+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
142142 execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("00:11:22:33:44:55" , nil )
143143 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_uplink" ).Return ("p0" , nil )
144144 // Second IP flow succeeds
@@ -189,7 +189,7 @@ var _ = Describe("Flows", func() {
189189 // Then it checks for TOR IP
190190 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
191191 // Then it gets TOR MAC
192- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , nil )
192+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
193193 execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("00:11:22:33:44:55" , nil )
194194 // Finally it checks for uplink
195195 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_uplink" ).Return ("" , nil )
@@ -199,27 +199,40 @@ var _ = Describe("Flows", func() {
199199 Expect (err .Error ()).Should (ContainSubstring ("uplink is empty" ))
200200 })
201201
202+ It ("should return error if fails to ping" , func () {
203+ // First ARP flow succeeds
204+ execMock .EXPECT ().Execute (matchSubstring ("ovs-ofctl add-flow br-rail1" )).Return ("" , nil )
205+ netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
206+ execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
207+ // TOR MAC retrieval fails
208+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , fmt .Errorf ("failed to get TOR MAC" ))
209+
210+ err := flows .AddPodRailFlows (0x5 , "vf0" , "br-rail1" , "10.0.0.1" , "00:11:22:33:44:66" )
211+ Expect (err ).Should (HaveOccurred ())
212+ Expect (err .Error ()).Should (ContainSubstring ("failed to get tor mac for bridge" ))
213+ })
214+
202215 It ("should return error if fails to get TOR MAC" , func () {
203216 // First ARP flow succeeds
204217 execMock .EXPECT ().Execute (matchSubstring ("ovs-ofctl add-flow br-rail1" )).Return ("" , nil )
205218 netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
206219 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
207220 // TOR MAC retrieval fails
208- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , fmt . Errorf ( "failed to get TOR MAC" ) )
209- execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("" , fmt .Errorf ("failed to get TOR MAC " ))
221+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
222+ execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("" , fmt .Errorf ("error " ))
210223
211224 err := flows .AddPodRailFlows (0x5 , "vf0" , "br-rail1" , "10.0.0.1" , "00:11:22:33:44:66" )
212225 Expect (err ).Should (HaveOccurred ())
213226 Expect (err .Error ()).Should (ContainSubstring ("failed to get tor mac for bridge" ))
214227 })
215228
216- It ("should return error if fails to get TOR MAC from arping " , func () {
229+ It ("should return error if fails to get TOR MAC from ping " , func () {
217230 // First ARP flow succeeds
218231 execMock .EXPECT ().Execute (matchSubstring ("ovs-ofctl add-flow br-rail1" )).Return ("" , nil )
219232 netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
220233 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
221234 // TOR MAC retrieval fails
222- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , fmt . Errorf ( "failed to get TOR MAC" ) )
235+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
223236 execMock .EXPECT ().ExecutePrivileged ("ip neighbor | grep 192.168.1.1 | awk '{print $5}'" ).Return ("" , nil )
224237
225238 err := flows .AddPodRailFlows (0x5 , "vf0" , "br-rail1" , "10.0.0.1" , "00:11:22:33:44:66" )
@@ -233,7 +246,7 @@ var _ = Describe("Flows", func() {
233246 netlinkMock .EXPECT ().LinkByName ("br-rail1" ).Return (mockLink , nil )
234247 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_peer_ip" ).Return ("192.168.1.1" , nil )
235248 // TOR MAC retrieval succeeds
236- execMock .EXPECT ().ExecutePrivileged ("arping 192.168.1.1 -c 1 &> /dev/null " ).Return ("" , nil )
249+ execMock .EXPECT ().ExecutePrivileged ("ping 192.168.1.1 -c 1" ).Return ("" , nil )
237250 execMock .EXPECT ().ExecutePrivileged (gomock .Any ()).Return ("00:11:22:33:44:55" , nil )
238251 // Uplink retrieval fails
239252 execMock .EXPECT ().Execute ("ovs-vsctl br-get-external-id br-rail1 rail_uplink" ).Return ("" , fmt .Errorf ("failed to get uplink" ))
0 commit comments