Files
netstack/tcpip/stack/stack_test.go
2022-11-24 21:32:04 +08:00

46 lines
935 B
Go

package stack_test
import (
"log"
"netstack/tcpip"
"netstack/tcpip/buffer"
"netstack/tcpip/link/channel"
"netstack/tcpip/stack"
"testing"
)
const (
defaultMTU = 65536
)
type fakeNetworkProtocol struct {
}
func (f *fakeNetworkProtocol) Number() tcpip.NetworkProtocolNumber {
return 114514
}
func init() {
stack.RegisterNetworkProtocolFactory("fakeNet", func() stack.NetworkProtocol {
return &fakeNetworkProtocol{}
})
}
func TestStackBase(t *testing.T) {
myStack := stack.New([]string{"fakeNet"})
id, ep := channel.New(10, defaultMTU, "") // 这是一个物理设备
log.Println(id)
if err := myStack.CreateNIC(1, id); err != nil { // 将上面的物理设备抽象成我们的网卡对象
panic(err)
}
myStack.AddAddress(1, 114514, "\x01") // 给网卡对象绑定一个IP地址 可以绑定多个
buf := buffer.NewView(30)
for i := range buf {
buf[i] = 1
}
ep.Inject(114514, buf.ToVectoriseView())
}