4.5.3 Chuyển vùng PNC
Khi một thiết bị muốn liên kết với một piconet đã tồn tại, PNC kiểm tra khả năng của thiết bị mới này xem nó có nhiều khả năng trở thành PNC của piconet hay không. Nếu thiết bị mới có nhiều khả năng và các chính sách bảo mật hiện tại cho phép thì PNC sẽ tuỳ chọn điều khiển chuyển vùng của piconet đến vùng mà DEV đã tham gia (join). Trong quá trình xử lý chuyển vùng, tất cả các khe thời gian vẫn được đảm bảo vì thế không xảy ra sự gián đoạn trong việc truyền dữ liệu.
Khi PNC rời khỏi piconet hoặc nó trao các chức năng PNC của nó cho DEV có khả năng trở thành piconet. Bit ―khả năng‖ được sử dụng để thông báo rằng thiết bị có thể trở thành PNC. PNC sẽ sử dụng thông tin ở trường này của các thiết bị trong piconet để làm tiêu chuẩn lựa chọn thiết bị thành viên có khả năng nhất làm PNC mới. PNC sẽ gửi lệnh yêu cầu chuyển vùng.
Nếu piconet là piconet không phụ thuộc thì DEV sẽ chấp nhận sự chỉ định và sẽ chuẩn bị nhận các bản ghi thông tin về piconet. Ngược lại, nó có thể từ chối yêu cầu bằng cách gửi lệnh phản hồi chuyển vùng đến PNC có đặt trường Reason Code nhằm thông báo ― Từ chối chuyển vùng, không thể hoạt động như là PNC khi có nhiều hơn một piconet‖. Nếu cả PNC hiện hành và PNC mới cùng là thành viên của cùng piconet phụ thuộc thì DEV sẽ chấp nhận yêu cầu chuyển vùng nếu không nó không thể tham gia vào piconet cha như là một thiết bị thông thường. Trong trường hợp DEV không thể tham gia piconet cha, DEV sẽ gửi lệnh phản hồi chuyển vùng tới PNC với trường Reason Code được đặt nhằm thông báo rằng ―Từ chối chuyển vùng, không thể tham gia piconet cha‖. Khi thủ tục chuyển vùng được khở tạo thì biến trạng thái HandoverStatus có giá trị là STARTED, nếu đồng hồ đếm thời gian chuyển vùng hết giờ thì PNC sẽ gửi lệnh yêu cầu đến DEV với biến trạng thái HandoverStatus có giá trị là CANCELLED. Nếu DEV nhận được PNC Shutdown IE từ PNC trong quá trình chuyển vùng thì nó hiểu rằng xử lý chuyển vùng bị hủy.
PNC sẽ chỉ định thời gian kênh cho việc chọn DEV làm PNC, khi thời gian kênh đã được chỉ định, trước tiên PNC sẽ gửi lệnh thông tin PNC đến thiết bị được chọn làm PNC. Trong lệnh thông tin PNC sẽ bao gồm các thông tin về các DEV đã được kết nạp vào piconet, các PNC hàng xóm đã kết nạp, các PNC con đã kết nạp của PNC và danh sách PNCID. Khi PNC gửi thành công lệnh này, nó sẽ gửi tất cả các yêu cầu thời gian kênh đến thiết bị chọn làm PNC bằng cách gửi lệnh thông tin chuyển vùng PNC và sau khi gửi thành công lệnh này nó sẽ gửi lệnh PS Set Information Response đến PNC mới. Lệnh thông tin chuyển vùng ( PNC Handover Information) sẽ không được gửi nếu PNC thông báo trong lệnh PNC Handover Request là nó không có CTRqBs để truyền. Lệnh PS Set Information Response sẽ không được gửi nếu PNC thông báo trong lệnh PNC Handover Request là nó không có tập PS nào để truyền. Thủ tục chuyển vùng sẽ truyền các thông tin cần thiết đến PNC mới ngoại trừ:
- Các CTRqB không đồng bộ sẽ không được gửi, tất cả các DEV có dữ liệu không đồng bộ cần gửi sẽ gửi lệnh yêu cầu thời gian kênh mới đến PNC mới sau khi PNC này gửi Beacon của nó lần đầu tiên.
- Vị trí CTA sẽ không bị di chuyển ngoại trừ các Beacon có trước đó. Khi DEV được chọn làm PNC nhận được thông tin yêu cầu từ PNC hiện tại thì nó sẽ phản hồi bằng lệnh PNC Handover Response. Lệnh này sẽ báo hiệu cho PNC biết rằng DEV được chọn đã thực sự là PNC. Sau khi PNC nhận được lệnh PNC Handover Response, nó sẽ đặt PNC Handover IE vào trong Beacon, trong lúc ấy DEV được chọn làm PNC sau khi nhận được báo nhận cho lệnh PNC Handover Response nó sẽ chuẩn bị quảng bá Beacon đầu tiên. PNC cũ sẽ đặt PNC Handover IE vào Beacon với trường Handover Beacon Number được đặt là số Beacon của siêu khung mà PNC mới gửi lần đầu tiên. Sau khi gửi becon cuối cùng, PNC cũ sẽ thôi không điều khiển piconet nữa, nó sẽ sinh MLME-PNC-HANDOVER.confirm đến DME và dừng việc sinh Beacon. PNC mới sẽ quảng bá Beacon đầu tiên của nó tại thời điểm mà PNC cũ gửi Beacon đi. PNC sẽ bắt đầu gửi Beacon và sử dụng PNCID như là SrcID cho tất cả Beacon hoặc cho các khung lệnh được truyền. Nó sẽ sử dụng PNCID hoặc sử dụng DEVID đã khai báo trước đây như là SrcID cho tất cả các khung dữ liệu được truyền. Khi PNC chuyển vùng thành công, việc liên kết các DEV còn lại không bị ảnh hưởng do vậy chúng không không cần liên kết lại với PNC mới.
Khi một thiết bị tham gia một piconet, PNC sẽ so sánh trường PNC Capabilities của thiết bị với trường tương ứng của nó. Nếu trong DEV, bít PNC Des-Mode được đặt còn trong PNC không đặt thì PNC sẽ thực hiện chuyển vùng
4.5.4 Dừng piconet
Nếu PNC tự nó loại bỏ khỏi piconet và không có thiết bị nào có khả năng trở thành PAN Coordinator thì PNC sẽ đặt PNC shutdown IE trong Beacon. PNC đảm bảo rằng việc kết thúc sẽ tuân theo những qui tắc trong thông cáo của Beacon trừ trường hợp nếu PNC phải kết thúc và không đủ thời gian để đợi xử lý chuyển vùng. Nếu PNC cha không phải là một PNC phụ thuộc và nó đang hỗ trợ một hoặc nhiều piconet phụ thuộc thì PNC cha sẽ lựa chọn một PNC phụ thuộc có DEVID thấp nhất để tiếp tục hoạt động mà không bị gián đoạn. PNC cha sẽ thông báo đến PNC phụ thuộc rằng nó có thể tiếp tục hoạt động bằng cách đặt DEVID của DEV phụ thuộc trong PNC Shutdown IE vào Beacon. Các PNC khác không nhìn thấy DEVID trong PNC Shutdown IE sẽ thôi hoạt động và chuyển sang kênh khác hoặc tham gia vào một piconet khác. Nếu có thời gian PNC phụ thuộc sẽ thực hiện tắt piconet của chính nó. Nếu PNC phụ thuộc thấy DEVID được liệt kê trong PNC Shutdown IE của PNC cha thì nó sẽ loại bỏ
Parent Piconet IE khỏi khung Beacon của nó, điều này cho biết rằng piconet này không còn là piconet phụ thuộc nữa.
Nếu PNC cha muốn dừng một piconet con nào đó, nó sẽ tắt các luồng được chỉ định cho piconet con bằng cách sử dụng thủ tục kết thúc các luồng đồng bộ. Thủ tục này được mô ta như hình vẽ sau: