From cf05c8357088a46679a8c6fa00be81917654d336 Mon Sep 17 00:00:00 2001
From: salamaniibm <salamani.ibm@gmail.com>
Date: Tue, 15 Nov 2016 04:17:54 +0000
Subject: [PATCH 1/2] During test case execution, we came across all test
case failures due to invalid IP.s generation for s390x system. On checking
git issues , we came across the link
https://github.com/coreos/flannel/issues/526, which logs similar issue for
bigEndiane during IP.s generation. On analysis we came across
littleEndian check, where code is manipulating IP.s for bigEndianess, which
is unnecessary because changes are required only at bit-level not for IP. We
are removing the littleEndian check where the IP address are involved.
For example subnetSize := ip.IP4(1 << (32 - cfg.SubnetLen)), assume
cfg.SubnetLen=24 (by default) then, value of subnetSize should be same
regardless of endianess, which is achieved after endiness check is removed.
---
pkg/ip/ipnet.go | 27 ++++++---------------------
1 file changed, 6 insertions(+), 21 deletions(-)
diff --git a/pkg/ip/ipnet.go b/pkg/ip/ipnet.go
index c8e6206..a3fa827 100644
--- a/pkg/ip/ipnet.go
+++ b/pkg/ip/ipnet.go
@@ -24,17 +24,10 @@ import (
type IP4 uint32
func FromBytes(ip []byte) IP4 {
- if NativelyLittle() {
- return IP4(uint32(ip[3]) |
- (uint32(ip[2]) << 8) |
- (uint32(ip[1]) << 16) |
- (uint32(ip[0]) << 24))
- } else {
- return IP4(uint32(ip[0]) |
- (uint32(ip[1]) << 8) |
- (uint32(ip[2]) << 16) |
- (uint32(ip[3]) << 24))
- }
+ return IP4(uint32(ip[3]) |
+ (uint32(ip[2]) << 8) |
+ (uint32(ip[1]) << 16) |
+ (uint32(ip[0]) << 24))
}
func FromIP(ip net.IP) IP4 {
@@ -58,11 +51,7 @@ func MustParseIP4(s string) IP4 {
}
func (ip IP4) Octets() (a, b, c, d byte) {
- if NativelyLittle() {
a, b, c, d = byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip)
- } else {
- a, b, c, d = byte(ip), byte(ip>>8), byte(ip>>16), byte(ip>>24)
- }
return
}
@@ -71,12 +60,8 @@ func (ip IP4) ToIP() net.IP {
}
func (ip IP4) NetworkOrder() uint32 {
- if NativelyLittle() {
- a, b, c, d := byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip)
- return uint32(a) | (uint32(b) << 8) | (uint32(c) << 16) | (uint32(d) << 24)
- } else {
- return uint32(ip)
- }
+ a, b, c, d := byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip)
+ return uint32(a) | (uint32(b) << 8) | (uint32(c) << 16) | (uint32(d) << 24)
}
func (ip IP4) String() string {
--
2.7.4