() ⇒ Giả sử rằn gA là một conilict free Ta cần chứng minh
3.2.2 Biểu diễn tiền tố trên cây tìm kiếm ưu tiên
Tập các tiền tố trong Router xác định theo CIDR tương ứng với tập R là tập hợp của các đoạn sao cho mỗi đoạn có thể biểu diễn bởi một tiền tố. Và ta biết rằng không có đoạn nào trong R giao nhau. Bởi vậy, R là một tập conflict free (định nghĩa 6). Để đơn giản, giả sử tập R có một đoạn tương ứng với tiền tố *. Với điều giả sử này, một msr(d) được định nghĩa cho mọi d.
Từ bổ đề 9 suy ra
msr(d) = [maxStart(ranges(d)), minFinish(ranges(d))].
Khi áp dụng cách biểu diễn một đoạn (như phần 3.2.1), chú ý thông tin data là Next Hop tương ứng của tiền tố lên cây tìm kiếm ưu tiên ta có thể sử dụng hàm minXinRectangle(xleft, xright, ytop), để tìm một điểm trong hình chữ nhật mà có giá trị x nhỏ nhất.
Tuy nhiên trong trường hợp có nhiều hơn một điểm có cùng tọa độ x ta phải tìm cách giảm thành phần x để tìm msr(d) phù hợp nhất.
Hình 3.4. Trường hợp có đoạn có cùng điểm cuối khớp với d
Định nghĩa 12. Cho W là số bit lớn nhất biểu diễn một địa chỉ đích
(W = 32 trong IPv4). Cho (x, y) ∈ P. transform1(x, y) = (x’, y’) = (2wx – y + 2w – 1, y) và transform1(P) = {tranform1(x, y)| (x, y) ∈ P}
Ta thấy rằng 0≤ <x' 22w với mọi (x’, y’) ∈ transform1(P) khi đó
không có 2 điểm trong transform1(P) có cùng giá trị x’ và x’ sẽ nhỏ hơn khi y lớn hơn.
Thay vì biểu diễn map1(R) trên cây tìm kiếm ưu tiên như phần 3.2.1 ta chuyển P = map1(R) thành tập hợp các điểm transform1(P). Sau đó thể hiện tập transform1(P) trên cây PST.
Gọi PST1(P) là một cây PST với tập transform1(P).
Lúc này để tìm msr(d) ta thực hiện hàm enumerateRectangle(2wd – d + 2w -1, ∞, d) để tìm ranges(d), và hàm minXinRactangle(2wd – d + 2w – 1,
∞, d) để tìm msr(d) trên cây PST1.
Để chèn một tiền tố mà có đoạn tương ứng là [u, v], ta chèn
transform1(map1([u, v])) vào cây PST1. Trường hợp tiền tố này có sẵn trong cây PST1, ta cập nhật lại thông tin về Next Hop cho tiền tố này.
Để xóa tiền tố có đoạn tương ứng là [u, v], ta xóa
transform1(map1([u,v])) từ cây PST1. Khi xóa 1 tiền tố, ta phải giữ không xóa tiền tố *. Yêu cầu khi xóa tiền tố này nên đặt bước truyền tiếp theo tương ứng với tiền tố này là ∅.
Trong khi các hàm minXinRectange, chèn và xóa chiếm O(W) (O(log
n)) thời gian. Khi PST1 là một cây RPST (RBPST), PST1 cung cấp sự mô tả một bảng định tuyến trong đó khớp tiền tố dài nhất, chèn tiền tố, xóa tiền tố có thể được thực hiện trong thời gian O(W) khi một cây RPST được sử dụng và O(log n) thời gian khi một cây RBPST được sử dụng.