OSI layer of Neighbor Discovery Protocol












1














NDP operates using ICMPv6 and, even though ICMPv6 messages are encapsulated in payload field of IPv6 datagram, ICMPv6 and ICMP are usually considered as network layer protocols. At least, on Wikipedia they are network layer protocols.



So I thought that NDP, thus, is also network layer protocol. However, on Wikipedia it is directly stated that it is a link layer protocol:




The Neighbor Discovery Protocol (NDP, ND)[1] is a protocol in the Internet protocol suite used with Internet Protocol Version 6 (IPv6). It operates at the Link Layer of the Internet model (RFC 1122), and is responsible for gathering various information required for internet communication, including the configuration of local connections and the domain name servers and gateways used to communicate with more distant systems. [https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol]




So my hypothesis is that NDP is considered as a link layer protocol because ICMPv6 messages used by NDP (Neighbor Solicitations, Router Advertisements, Redirects and so on) never leave the local network -- the same as ARP messages never leave the local network. Am I right?



Thank you for attention.



UPDATE 1:



Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?



UPDATE 2:



Though it looks like nothing can actually prevent me from sending Neighbor Solicitation to any host in the Internet. ICMPv6 is routable. So I can choose any destination IPv6 including that which is outside my network.










share|improve this question









New contributor




JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    1














    NDP operates using ICMPv6 and, even though ICMPv6 messages are encapsulated in payload field of IPv6 datagram, ICMPv6 and ICMP are usually considered as network layer protocols. At least, on Wikipedia they are network layer protocols.



    So I thought that NDP, thus, is also network layer protocol. However, on Wikipedia it is directly stated that it is a link layer protocol:




    The Neighbor Discovery Protocol (NDP, ND)[1] is a protocol in the Internet protocol suite used with Internet Protocol Version 6 (IPv6). It operates at the Link Layer of the Internet model (RFC 1122), and is responsible for gathering various information required for internet communication, including the configuration of local connections and the domain name servers and gateways used to communicate with more distant systems. [https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol]




    So my hypothesis is that NDP is considered as a link layer protocol because ICMPv6 messages used by NDP (Neighbor Solicitations, Router Advertisements, Redirects and so on) never leave the local network -- the same as ARP messages never leave the local network. Am I right?



    Thank you for attention.



    UPDATE 1:



    Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?



    UPDATE 2:



    Though it looks like nothing can actually prevent me from sending Neighbor Solicitation to any host in the Internet. ICMPv6 is routable. So I can choose any destination IPv6 including that which is outside my network.










    share|improve this question









    New contributor




    JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      1












      1








      1







      NDP operates using ICMPv6 and, even though ICMPv6 messages are encapsulated in payload field of IPv6 datagram, ICMPv6 and ICMP are usually considered as network layer protocols. At least, on Wikipedia they are network layer protocols.



      So I thought that NDP, thus, is also network layer protocol. However, on Wikipedia it is directly stated that it is a link layer protocol:




      The Neighbor Discovery Protocol (NDP, ND)[1] is a protocol in the Internet protocol suite used with Internet Protocol Version 6 (IPv6). It operates at the Link Layer of the Internet model (RFC 1122), and is responsible for gathering various information required for internet communication, including the configuration of local connections and the domain name servers and gateways used to communicate with more distant systems. [https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol]




      So my hypothesis is that NDP is considered as a link layer protocol because ICMPv6 messages used by NDP (Neighbor Solicitations, Router Advertisements, Redirects and so on) never leave the local network -- the same as ARP messages never leave the local network. Am I right?



      Thank you for attention.



      UPDATE 1:



      Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?



      UPDATE 2:



      Though it looks like nothing can actually prevent me from sending Neighbor Solicitation to any host in the Internet. ICMPv6 is routable. So I can choose any destination IPv6 including that which is outside my network.










      share|improve this question









      New contributor




      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      NDP operates using ICMPv6 and, even though ICMPv6 messages are encapsulated in payload field of IPv6 datagram, ICMPv6 and ICMP are usually considered as network layer protocols. At least, on Wikipedia they are network layer protocols.



      So I thought that NDP, thus, is also network layer protocol. However, on Wikipedia it is directly stated that it is a link layer protocol:




      The Neighbor Discovery Protocol (NDP, ND)[1] is a protocol in the Internet protocol suite used with Internet Protocol Version 6 (IPv6). It operates at the Link Layer of the Internet model (RFC 1122), and is responsible for gathering various information required for internet communication, including the configuration of local connections and the domain name servers and gateways used to communicate with more distant systems. [https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol]




      So my hypothesis is that NDP is considered as a link layer protocol because ICMPv6 messages used by NDP (Neighbor Solicitations, Router Advertisements, Redirects and so on) never leave the local network -- the same as ARP messages never leave the local network. Am I right?



      Thank you for attention.



      UPDATE 1:



      Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?



      UPDATE 2:



      Though it looks like nothing can actually prevent me from sending Neighbor Solicitation to any host in the Internet. ICMPv6 is routable. So I can choose any destination IPv6 including that which is outside my network.







      ip ipv6 osi icmpv6 ndp






      share|improve this question









      New contributor




      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 57 mins ago





















      New contributor




      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 hours ago









      JenyaKh

      154




      154




      New contributor




      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      JenyaKh is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          3 Answers
          3






          active

          oldest

          votes


















          1














          First of all: In every "model" you will find some aspects that do not describe the reality correctly. This is true for "models" in computer science, financial theory, politics or any other field of science. As the word already says, the "OSI model" is a "model" so it does not describe the reality correctly in all aspects.



          Especially the question "what layer is the protocol XYZ" often has no definite answer: Think about tunneling IP packets in HTTPS connections in a VPN session.



          However, the so-called "TCP/IP model" (which is a simplified alternative to the OSI model) sees ICMP packets in the layer corresponding to OSI layer 3, not layer 2.



          This model does not see ICMP as own layer-3 protocol, but as part of the IP protocol (which is clearly layer 3):



          Placing NDP in any other layer than layer-3 would imply that this protocol works together with any layer-3 protocol (e.g. NDP can be used together with IPv4). However this is not the case.



          It would have been possible to place NDP between layer-2 and layer-3:



          ARP for example is placed "between" layer-2 and layer-3 (Wikipedia says "layer 2.5") to indicate that this protocol will only work together with certain combinations of layer-2 and layer-3 protocols. (As far as I know ARP only works with the combination IPv4 and Ethernet).



          However this is not true in the case of NDP: NDP should work with every layer-2 protocol.




          Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?






          1. This criterion is not sufficient to say that a protocol is on layer 2:



            DHCP also never leaves the local network - however DHCP covers OSI layers 5-7.




          2. There is at least one case I know where NDP messages travel around the world:



            When using IPv6 using Teredo!








          share|improve this answer





















          • Thank you for the answer!
            – JenyaKh
            27 mins ago



















          2














          The OSI model is a conceptual idea -- it doesn't relate to anything that people actually built. Moreover, IPv4 and IPv6 were developed without the OSI model in mind, so there is no direct correlation between them. Many IPv4 protocols don't really fit the model, and the same is true of IPv6.



          People spend endless hours debating at what layer a particular protocol resides. Your reasoning is as good as any.



          See this questions and answer for more information on the OSI model and networking protocols.






          share|improve this answer





















          • I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
            – JenyaKh
            1 hour ago










          • Yes, I suppose.
            – Ron Trunk
            1 hour ago










          • Thank you for the answer!
            – JenyaKh
            1 hour ago



















          1














          NDP belongs to the L3 network layer, it is an essential part of IPv6. Just like IPv6 it is encapsulated in L2 frames, so it uses - or operates on top of - the data link layer (most often Ethernet).






          share|improve this answer





















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "496"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            noCode: true, onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });






            JenyaKh is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f55682%2fosi-layer-of-neighbor-discovery-protocol%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            First of all: In every "model" you will find some aspects that do not describe the reality correctly. This is true for "models" in computer science, financial theory, politics or any other field of science. As the word already says, the "OSI model" is a "model" so it does not describe the reality correctly in all aspects.



            Especially the question "what layer is the protocol XYZ" often has no definite answer: Think about tunneling IP packets in HTTPS connections in a VPN session.



            However, the so-called "TCP/IP model" (which is a simplified alternative to the OSI model) sees ICMP packets in the layer corresponding to OSI layer 3, not layer 2.



            This model does not see ICMP as own layer-3 protocol, but as part of the IP protocol (which is clearly layer 3):



            Placing NDP in any other layer than layer-3 would imply that this protocol works together with any layer-3 protocol (e.g. NDP can be used together with IPv4). However this is not the case.



            It would have been possible to place NDP between layer-2 and layer-3:



            ARP for example is placed "between" layer-2 and layer-3 (Wikipedia says "layer 2.5") to indicate that this protocol will only work together with certain combinations of layer-2 and layer-3 protocols. (As far as I know ARP only works with the combination IPv4 and Ethernet).



            However this is not true in the case of NDP: NDP should work with every layer-2 protocol.




            Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?






            1. This criterion is not sufficient to say that a protocol is on layer 2:



              DHCP also never leaves the local network - however DHCP covers OSI layers 5-7.




            2. There is at least one case I know where NDP messages travel around the world:



              When using IPv6 using Teredo!








            share|improve this answer





















            • Thank you for the answer!
              – JenyaKh
              27 mins ago
















            1














            First of all: In every "model" you will find some aspects that do not describe the reality correctly. This is true for "models" in computer science, financial theory, politics or any other field of science. As the word already says, the "OSI model" is a "model" so it does not describe the reality correctly in all aspects.



            Especially the question "what layer is the protocol XYZ" often has no definite answer: Think about tunneling IP packets in HTTPS connections in a VPN session.



            However, the so-called "TCP/IP model" (which is a simplified alternative to the OSI model) sees ICMP packets in the layer corresponding to OSI layer 3, not layer 2.



            This model does not see ICMP as own layer-3 protocol, but as part of the IP protocol (which is clearly layer 3):



            Placing NDP in any other layer than layer-3 would imply that this protocol works together with any layer-3 protocol (e.g. NDP can be used together with IPv4). However this is not the case.



            It would have been possible to place NDP between layer-2 and layer-3:



            ARP for example is placed "between" layer-2 and layer-3 (Wikipedia says "layer 2.5") to indicate that this protocol will only work together with certain combinations of layer-2 and layer-3 protocols. (As far as I know ARP only works with the combination IPv4 and Ethernet).



            However this is not true in the case of NDP: NDP should work with every layer-2 protocol.




            Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?






            1. This criterion is not sufficient to say that a protocol is on layer 2:



              DHCP also never leaves the local network - however DHCP covers OSI layers 5-7.




            2. There is at least one case I know where NDP messages travel around the world:



              When using IPv6 using Teredo!








            share|improve this answer





















            • Thank you for the answer!
              – JenyaKh
              27 mins ago














            1












            1








            1






            First of all: In every "model" you will find some aspects that do not describe the reality correctly. This is true for "models" in computer science, financial theory, politics or any other field of science. As the word already says, the "OSI model" is a "model" so it does not describe the reality correctly in all aspects.



            Especially the question "what layer is the protocol XYZ" often has no definite answer: Think about tunneling IP packets in HTTPS connections in a VPN session.



            However, the so-called "TCP/IP model" (which is a simplified alternative to the OSI model) sees ICMP packets in the layer corresponding to OSI layer 3, not layer 2.



            This model does not see ICMP as own layer-3 protocol, but as part of the IP protocol (which is clearly layer 3):



            Placing NDP in any other layer than layer-3 would imply that this protocol works together with any layer-3 protocol (e.g. NDP can be used together with IPv4). However this is not the case.



            It would have been possible to place NDP between layer-2 and layer-3:



            ARP for example is placed "between" layer-2 and layer-3 (Wikipedia says "layer 2.5") to indicate that this protocol will only work together with certain combinations of layer-2 and layer-3 protocols. (As far as I know ARP only works with the combination IPv4 and Ethernet).



            However this is not true in the case of NDP: NDP should work with every layer-2 protocol.




            Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?






            1. This criterion is not sufficient to say that a protocol is on layer 2:



              DHCP also never leaves the local network - however DHCP covers OSI layers 5-7.




            2. There is at least one case I know where NDP messages travel around the world:



              When using IPv6 using Teredo!








            share|improve this answer












            First of all: In every "model" you will find some aspects that do not describe the reality correctly. This is true for "models" in computer science, financial theory, politics or any other field of science. As the word already says, the "OSI model" is a "model" so it does not describe the reality correctly in all aspects.



            Especially the question "what layer is the protocol XYZ" often has no definite answer: Think about tunneling IP packets in HTTPS connections in a VPN session.



            However, the so-called "TCP/IP model" (which is a simplified alternative to the OSI model) sees ICMP packets in the layer corresponding to OSI layer 3, not layer 2.



            This model does not see ICMP as own layer-3 protocol, but as part of the IP protocol (which is clearly layer 3):



            Placing NDP in any other layer than layer-3 would imply that this protocol works together with any layer-3 protocol (e.g. NDP can be used together with IPv4). However this is not the case.



            It would have been possible to place NDP between layer-2 and layer-3:



            ARP for example is placed "between" layer-2 and layer-3 (Wikipedia says "layer 2.5") to indicate that this protocol will only work together with certain combinations of layer-2 and layer-3 protocols. (As far as I know ARP only works with the combination IPv4 and Ethernet).



            However this is not true in the case of NDP: NDP should work with every layer-2 protocol.




            Well, I realized that the point which is most interesting to me is -- if it is right that NDP ICMPv6 messages never leave the bounds of local network?






            1. This criterion is not sufficient to say that a protocol is on layer 2:



              DHCP also never leaves the local network - however DHCP covers OSI layers 5-7.




            2. There is at least one case I know where NDP messages travel around the world:



              When using IPv6 using Teredo!









            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 39 mins ago









            Martin Rosenau

            7307




            7307












            • Thank you for the answer!
              – JenyaKh
              27 mins ago


















            • Thank you for the answer!
              – JenyaKh
              27 mins ago
















            Thank you for the answer!
            – JenyaKh
            27 mins ago




            Thank you for the answer!
            – JenyaKh
            27 mins ago











            2














            The OSI model is a conceptual idea -- it doesn't relate to anything that people actually built. Moreover, IPv4 and IPv6 were developed without the OSI model in mind, so there is no direct correlation between them. Many IPv4 protocols don't really fit the model, and the same is true of IPv6.



            People spend endless hours debating at what layer a particular protocol resides. Your reasoning is as good as any.



            See this questions and answer for more information on the OSI model and networking protocols.






            share|improve this answer





















            • I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
              – JenyaKh
              1 hour ago










            • Yes, I suppose.
              – Ron Trunk
              1 hour ago










            • Thank you for the answer!
              – JenyaKh
              1 hour ago
















            2














            The OSI model is a conceptual idea -- it doesn't relate to anything that people actually built. Moreover, IPv4 and IPv6 were developed without the OSI model in mind, so there is no direct correlation between them. Many IPv4 protocols don't really fit the model, and the same is true of IPv6.



            People spend endless hours debating at what layer a particular protocol resides. Your reasoning is as good as any.



            See this questions and answer for more information on the OSI model and networking protocols.






            share|improve this answer





















            • I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
              – JenyaKh
              1 hour ago










            • Yes, I suppose.
              – Ron Trunk
              1 hour ago










            • Thank you for the answer!
              – JenyaKh
              1 hour ago














            2












            2








            2






            The OSI model is a conceptual idea -- it doesn't relate to anything that people actually built. Moreover, IPv4 and IPv6 were developed without the OSI model in mind, so there is no direct correlation between them. Many IPv4 protocols don't really fit the model, and the same is true of IPv6.



            People spend endless hours debating at what layer a particular protocol resides. Your reasoning is as good as any.



            See this questions and answer for more information on the OSI model and networking protocols.






            share|improve this answer












            The OSI model is a conceptual idea -- it doesn't relate to anything that people actually built. Moreover, IPv4 and IPv6 were developed without the OSI model in mind, so there is no direct correlation between them. Many IPv4 protocols don't really fit the model, and the same is true of IPv6.



            People spend endless hours debating at what layer a particular protocol resides. Your reasoning is as good as any.



            See this questions and answer for more information on the OSI model and networking protocols.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 2 hours ago









            Ron Trunk

            34.3k23171




            34.3k23171












            • I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
              – JenyaKh
              1 hour ago










            • Yes, I suppose.
              – Ron Trunk
              1 hour ago










            • Thank you for the answer!
              – JenyaKh
              1 hour ago


















            • I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
              – JenyaKh
              1 hour ago










            • Yes, I suppose.
              – Ron Trunk
              1 hour ago










            • Thank you for the answer!
              – JenyaKh
              1 hour ago
















            I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
            – JenyaKh
            1 hour ago




            I see. But am I right that NDP ICMPv6 messages never leave the bounds of local network so this is why we can say that NDP is link layer even though ICMPv6 is network layer?
            – JenyaKh
            1 hour ago












            Yes, I suppose.
            – Ron Trunk
            1 hour ago




            Yes, I suppose.
            – Ron Trunk
            1 hour ago












            Thank you for the answer!
            – JenyaKh
            1 hour ago




            Thank you for the answer!
            – JenyaKh
            1 hour ago











            1














            NDP belongs to the L3 network layer, it is an essential part of IPv6. Just like IPv6 it is encapsulated in L2 frames, so it uses - or operates on top of - the data link layer (most often Ethernet).






            share|improve this answer


























              1














              NDP belongs to the L3 network layer, it is an essential part of IPv6. Just like IPv6 it is encapsulated in L2 frames, so it uses - or operates on top of - the data link layer (most often Ethernet).






              share|improve this answer
























                1












                1








                1






                NDP belongs to the L3 network layer, it is an essential part of IPv6. Just like IPv6 it is encapsulated in L2 frames, so it uses - or operates on top of - the data link layer (most often Ethernet).






                share|improve this answer












                NDP belongs to the L3 network layer, it is an essential part of IPv6. Just like IPv6 it is encapsulated in L2 frames, so it uses - or operates on top of - the data link layer (most often Ethernet).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 50 mins ago









                Zac67

                25.6k21352




                25.6k21352






















                    JenyaKh is a new contributor. Be nice, and check out our Code of Conduct.










                    draft saved

                    draft discarded


















                    JenyaKh is a new contributor. Be nice, and check out our Code of Conduct.













                    JenyaKh is a new contributor. Be nice, and check out our Code of Conduct.












                    JenyaKh is a new contributor. Be nice, and check out our Code of Conduct.
















                    Thanks for contributing an answer to Network Engineering Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f55682%2fosi-layer-of-neighbor-discovery-protocol%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Contact image not getting when fetch all contact list from iPhone by CNContact

                    count number of partitions of a set with n elements into k subsets

                    A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks