NIC 对象绑定IP还未实现完成 明天继续

This commit is contained in:
impact-eintr
2022-11-24 21:32:04 +08:00
parent e51d8ea721
commit 4589d971fd
5 changed files with 165 additions and 10 deletions

View File

@@ -1,6 +1,9 @@
package stack_test
import (
"log"
"netstack/tcpip"
"netstack/tcpip/buffer"
"netstack/tcpip/link/channel"
"netstack/tcpip/stack"
"testing"
@@ -10,12 +13,33 @@ 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.Stack{}
id, _ := channel.New(10, defaultMTU, "")
myStack := stack.New([]string{"fakeNet"})
id, ep := channel.New(10, defaultMTU, "") // 这是一个物理设备
log.Println(id)
if err := myStack.CreateNIC(1, id); err != nil {
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())
}