mirror of
https://github.com/impact-eintr/netstack.git
synced 2025-10-06 13:26:49 +08:00
NIC 对象绑定IP还未实现完成 明天继续
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
Reference in New Issue
Block a user