func getMarker(b *bytes.Buffer) {
	b.Reset()
	b.Write([]byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF})
}
BGP packets start with 16 bytes of FF
package main
import (
	"bytes"
	"encoding/binary"
	"net"
)
const (
	bgpVersion = 4
	open         = 1
	update       = 2
	notification = 3
	keepalive    = 4
	refresh      = 5
	asSet      = 1
	asSequence = 2
	headerError     = 1
	openError       = 2
	updateError     = 3
	holdTimeExpired = 4
	fsmError        = 5
	cease           = 6
	minMessage = 19
	maxMessage = 4096
	afiIPv4     uint16 = 1
	afiIPv6     uint16 = 2
	safiUnicast uint8  = 1
)
type bgpid [4]byte
type ipv4Address []byte
type ipv6Address []byte
type twoByteLength [2]byte
type v4Addr struct {
	Mask   uint8
	Prefix net.IP
	ID     uint32
}
type v6Addr struct {
	Mask   uint8
	Prefix net.IP
	ID     uint32
}
type msgOpen struct {
	Version  uint8
	ASN      uint16
	HoldTime uint16
	BGPID    bgpid
	ParamLen uint8
}
func sizeOfStruct(i interface{}) int {
	buf := &bytes.Buffer{}
	binary.Write(buf, binary.BigEndian, i)
	return len(buf.Bytes())
}